【VBA講座】ファイルを読み込む4つの方法と使い分け

VBAで
 ・ファイルを読み込む方法は4種類
あります!
※正確には5種類あります。
※ただ1つは使用するメリットが無いと思います。

この記事では
 ・どういう時に
 ・どの方法を使用すべきか
を記載します!

PR

ファイルをまるっと読み込みたい時

ファイルの内容をまるっとシートへ読み込みたい時は、一番シンプルな方法である
 ・「QueryTablesオブジェクト」の「Add」メソッド
を使用します。

詳細は以下の記事をご確認ください。


PR

指定した列のみ読み込みたい時

ファイルの指定したのみをシートへ読み込みたい時は、指定したのみを読み込み可能である
 ・「Workbooksオブジェクト」の「OpenText」メソッド
を使用します。

詳細は以下の記事をご確認ください。

PR

指定した行のみ読み込みたい時

ファイルの指定したのみをシートへ読み込みたい時は
 Openステートメント
 「ADODB.Streamオブジェクト」の「ReadText」メソッド
どちらかを使用します。

どちらを使用するかは「ファイルの文字コード」で決めます。
※文字コードが「Shift_JIS」か「UTF-8」かによります。

ファイルの内容を1行毎に確認して、読み込みたいのみをシートへ読み込みます。

詳細は以下の記事をご確認ください。

PR

まとめ

上記を表にまとめます。

No.どういう時に読み込み方法備考
1まるっと読み込みたい「QueryTablesオブジェクト」の
「Add」メソッド
一番シンプル
2指定したのみ読み込みたい「Workbooksオブジェクト」の
「OpenText」メソッド
読み込むの指定が可能。
※列を指定して読み込める唯一の方法。
※列を指定して読み込めるのはtxtファイルのみ。
3指定したのみ読み込みたいOpenステートメント文字コードが「Shift_JIS」の場合。
シンプル。
※UTF-8で読み込むことはできない。
4指定したのみ読み込みたい「ADODB.Streamオブジェクト」の
「ReadText」メソッド
文字コードが「UTF-8」の場合。
ファイルを読み込む4つの方法と使い分け

上記以外の方法として
 ・「FileSystemObject」の「OpenTextFile」メソッド
があります。

ただこの方法を使用するメリットは無いと思います。
※少なくとも私にはメリットを見つけることができませんでした。

既に別の理由で「FileSystemObject」を使用しているならば、こちらを流用してファイルを読み込んでもよいと思います。
※「OpenTextFile」メソッドを使用して読み込んでもよいと思います。