この記事では以下の方法を知ることができます。
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
ファイルへの入出力 (I/O) を有効にします。
Openステートメントを使うことでファイルを読み込むことができます。
1行分読み取む
Openステートメントで読み込んだデータを、1行分読み込むためにはLine Input # ステートメントを使用します。
Line Input #1, buf
開いているシーケンシャル ファイルから 1 行読み取って、その内容を文字列型 (String) 変数に割り当てます。
bufの部分は任意の変数名を使用できます。
最終行を読み取る
最終行を検知するためにはEOF関数を使用します。
EOF(1)
Random またはシーケンシャル Input で開かれたファイルの末尾に達した場合、Boolean 値 True を含む整数を返します。
これにより最終行を検知することができ、最終行までのループ処理が可能となります。
()の中の数字はOpenステートメントで指定した#1の数字を指定する必要があります。
実行結果
ではこのプログラムを実行してみましょう。
1行ずつ読み込みができました。
まとめ
今回の記事では以下のことを知ることができました。
・Openステートメントをでファイルを読み込む方法
・Line Input # ステートメントで1行ずつ読み込む方法
・EOF関数で最終行まで読み込む方法
この方法を使用して、データを1行ずつ変換しながらExcelに取り込むことができます。
よく使用する技術ですのでご紹介しました。
ではまた。
コメント