テキストファイルの読み込み EXCEL VBAサンプルコード

VBAサンプル

説明

機能

テキストファイルを1行ずつ読み込むサンプルです。
(文字コード:Shift-JIS、改行コード:CRLF)

ファイルを読み込む方法はたくさんありますが、このサンプルは、もっとも簡単な例です。

補足・注意事項

このサンプルコードでは、入力するテキストファイルの文字コードがShift-JIS形式で、改行コードがCRLFになります。
他の文字コード、改行コードのファイルのサンプルは、今後追加する予定です。

使用例

テキストファイルを1行ずつ読み込んで処理をする

コード

Sub Ex01()

Dim fileno As Integer   ' ファイル番号
Dim buf As String       ' 入力データエリア

'ファイル番号の取得
fileno = FreeFile
 
'入力ファイルの処理
Open "c:\vbatest\test01.txt" For Input As #fileno

While Not EOF(fileno)
    
  Line Input #fileno, buf
  
  'ここに1行分の処理を記述
  Debug.Print buf
  
Wend

Close #fileno

End Sub

解説

変数定義

3:変数定義(ファイル番号を整数型で定義)
4:変数定義(入力データエリアを文字列型で定義)

読み込みの準備

6:空いているファイル番号の取得して3で定義した変数にセット
10:読み込むファイルを入力モードでオープン

ファイルの読み込み

12:ファイルを読み切るまで繰り返す
13:1行読み込んで4で定義した変数にセット
17:イミディエイトウインドウに読み込んだ1行(13で内容がセットされた変数)を表示
 (このサンプルでは単に表示だけしましたが、コードを流用する場合は、ここに1行分の処理を書きます。)

後始末

21:オープンしているファイルをクローズ

実行例

実行すると入力ファイル”test01.txt”の内容が表示されます。

入力するファイルのパス

Cドライブのvbatestフォルダのtest01.txtというテキストファイルを読み込みます。
cap_20160813100528_0001

入力するファイルの内容

8行のデータを含むテキストファイルです。
cap_20160813100528_0002

コードと実行結果

イミディエイトウインドウに読み込んだ8行のデータが表示されました。
cap_20160813100528_0003

メモ

コードのサンプルとしてのわかりやすさを優先しているので、エラー処理を省略したり、ファイルのパスを直接書いたりしていますが、流用する場合は、シート上にパスを記述出来るようにするなど、適宜修正するとよいと思います。

補足情報

ワンポイントアドバイス

ファイル番号

このページのサンプルのようなOpenステートメントで開くファイルのプログラミングでは、ファイル番号を使います。
ファイル番号は、個々のファイルに付ける番号であり、Openしたときのファイル番号は、Input、Print、Closeなど、ファイルにアクセスするステートメントを記述するときも同様に記述します。複数ファイルを取り扱うプログラミングを行う際には、個々の命令で記述するファイル番号を間違えないようにしましょう。

2つのファイルを取り扱うプログラミングの例

入力ファイルのファイル番号を”inputfileno”、出力ファイルのファイル番号を”outputfileno”で定義した例です。

  inputfileno = FreeFile
  Open "inputfile" For Input As #inputfileno

  outputfileno = FreeFile
  Open "outputfile" For Output As #outputfileno

  Line Input #inputfileno, buf
  Print #outputfileno, buf

  Close #inputfileno
  Close #outputfileno

VBAリファレンス

サンプルコード内で使用しているステートメントや関数の詳細は、以下のページを参照してください。

FreeFile関数

VBAレファレンス FreeFile関数

Openステートメント

準備中

Line Inputステートメント

準備中

Closeステートメント

準備中

Debug.Print

準備中

用語

イミディエイトウインドウ

準備中

ファイル番号

準備中

文字コード

準備中

改行コード

準備中

類似機能

ADODB.Streamオブジェクトによるファイル入出力
FileSystemObjectオブジェクトによるファイル入出力

参考サイト

Office VBA 言語リファレンス
https://msdn.microsoft.com/ja-jp/library/office/gg264383.aspx

タイトルとURLをコピーしました