忘れてならないのは3.の作業です。開いたファイルは明示的に閉じなければなりません。閉じるのは Close ステートメントです。実はマクロが正常に終了すると、それまで Open ステートメントで開いていたファイルは自動的に閉じられるのですが、万が一マクロが異常終了したときなどはメモリ上でファイルが開かれたままになってしまいます。たった 1 行のコードを書くだけですから、開いたファイルは自分で忘れずに閉じておきましょう。
Sub Sample22()
Dim n As Long, buf As Variant, tmp As String
n = FreeFile
Open "D:\Test.txt" For Input As #n
Line Input #n, tmp ''<------(1)
Close #n
buf = Split(tmp, ",") ''<------(2)
Worksheets("Sheet1").Range("A1:D1") = buf ''<------(3)
End Sub
Sub Sample23()
Dim TargetFile As String, n As Long, buf As String
n = FreeFile
TargetFile = "C:\config.sys"
buf = Space(FileLen(TargetFile))
Open TargetFile For Binary As #n
Get #n, , buf
Close #n
Worksheets("Sheet1").Range("A1") = buf
End Sub
binary モードで開いたファイルからデータを読み込むには Get ステートメントを使います。このとき、Get ステートメントで読み込んだデータを格納する変数は、あらかじめデータの大きさを確保しておかなければなりません。そこで、スペースを挿入する Space 関数を使って変数 buf のサイズを指定しておきます。スペースの数は C:\config.sys のサイズと同じです。そこで FileLen 関数を使って C:\config.sys の大きさを取得します。