VBAファイルを読み込みセルに書き出す

投稿者: | 2020年9月30日
excelアイコン

バージョン

マイクロソフト365

 

エクセルでファイルを読み込んでエクセルのセルに書き込む方法を4つご紹介したいと思います。

それではいってみましょう!

 

ファイルを読み込みセルに1行ずつ書込む(Line Input)

Line Inputステートメントを使用した例です。

繰り返し処理のLoopを利用して、下記のようにファイルを1行ずつ読込んで、1行ずつセルに書き込みます。

fileinput

Openステートメントでフルパスで読み込むファイルを指定します。

EOF関数がFalseの間、処理はループし続け、ファイルの最後EOF(End Of File)までポインタが到達したらTrueに切り替わるのでループから抜けて終了します。

ファイルを1行読み込むとファイルポインタが次の行へ移動します。

エクセルのセルに読み込んだ値を書き込みます。

ループするごとに変数iは1増加するのでセルが1行下に移動することになります。

 

ファイルを読み込みセルに1行ずつ書込む(ReadLine)

TextStreamObjectReadLineメソッドを使用した例です。

繰り返し処理のLoopを利用して、下記のようにファイルを1行ずつ読込ん、1行ずつセルに書き込みます。

fileinput

FileSystemObjectを生成します。

FileSystemObjectのOpenTextFilメソッドTextStreamオブジェクトを取得。ここでフルパスを指定します。

TextStreamオブジェクトのAtEndOfStreamプロパティでファイルの最後EOF(End Of File)に到達したら(true)ループから抜けます。

TextStreamオブジェクトのReadLineメソッドで1行読込みセルに書き込みます。

Loopするごとに変数iは1増加するのでセルが1行下に移動することになります。

 

ファイルを読み込みセルに一気に書出し(ReadAll)

TextStreamオブジェクトReadAllメソッドを使用した例です。

下記のようにループ処理は行わずに、ファイルを一気にすべて読込、セルA1に一気に書出します。

ファイルを全選択コピーしてセルA1に張り付けると一緒のイメージです。

readAll

 

CSVファイルを読み込みセルに書込む(split関数)

Split関数を使用して、カンマ区切りのファイルを1行ずつ読込、セルに1行1列ずつ書き出すサンプルです。

split_sample

Openステートメントでフルパスで読み込むファイルを指定します。

EOF関数がFalseの間、処理をループし続けるようにして、ファイルの最後EOF(End Of File)までポインタが到達したらTrueに切り替わるのでループから抜ける処理を行います。

ファイルを1行読み込むとファイルポインタが次の行へ移動します。

Split関数でファイルのカンマで区切られてるデータを配列に格納します。

For文で配列に格納されてる値を、エクセルの列に書き込んでいきます。

ループするごとに変数iは1増加するのでセルが1行下に移動します。

 

まとめ

ファイルをセルに書き出す際は参考にしてもらえたら幸いです。

以上です。