
なんで わざわざVBAで テキストファイルを読み込む必要があるの?

自動化したいからだよ。毎回毎回ファイルを選択するの めんどくさくない?

どんだけ めんどくさがり なんだよ…。
この記事では以下の方法を知ることができます。
VBAを使用してテキストファイルをExcelに取り込む方法
テキストファイルを取り込むプログラム
以下はテキストファイルを読み込むコードです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
Sub Sample() ' 読み込むテキストファイルのパスを指定します Open "C:\sample\sample.txt" For Input As #1 ' 読み込み先Excelの行番号 Dim row_num As Long: row_num = 1 ' ファイルの終端まで繰り返し処理 Do While Not EOF(1) ' ファイルを1行読み込みbufに入れます Line Input #1, buf ' 読み込んだ値をExcelに書込みます Cells(row_num, 1).Value = buf ' 行番号を更新します row_num = row_num + 1 Loop ' 読み込んだファイルを閉じます Close #1 End Sub |
プログラム解説
ファイルを読み込む
ファイルを読み込むには Openステートメント を使用します。
Open “読み込むファイルのパス“ For Input As #1
‘ ここに処理を記述
Close #1
#1 の部分にデータが読み込まれます。そのため、最後に #1 を閉じます。また、次に説明していますが、テキストファイルを読み込む時に、この #1 を指定します。
1行分読み取む
Openステートメントで読み込んだデータを、1行分読み込むためには Line Input # ステートメント を使用します。
Line Input #1, buf
#1 に読み込んだテキストファイルを1行取り出して、buf という変数に格納しています。つまり buf の部分は自由な変数名にすることができます。
最終行を読み取る
最終行を検知するためには EOF関数 を使用します。
EOF(1)
()の中の数字はOpenステートメントで指定した #1 の数字 を指定する必要があります。
実行結果
ではこのプログラムを実行してみましょう。
1行ずつ読み込みができました。
おわりに
今回の記事では以下のことを知ることができました。
・ Open でファイルを読み込む方法
・ Line Input # で1行ずつ読み込む方法
・EOF で最終行まで読み込む方法
この方法を使用して、データを1行ずつ変換しながらExcelに取り込むことができます。
よく使用する技術ですのでご紹介しました。
ではまた。
・以下の記事を参考にさせて頂きました。

コメント