VBA31_テキストファイルを読み込む方法

おはようございます! にわか管理人のBenです。今回から2,3回は久々のVBAで、外部ファイルの入出力をノートします。は自動で気温や湿度を記録してくれるデータロガーの出力ファイルなどのファイルの読み込みに役立ててます。研究以外でもネット等からダウンロードしたファイルの必要部分を抜き取るなど色々使えると思います。

20160323a.PNG
まず基本として外部のファイルを読み込む方法です。外部のファイルにアクセスするには、①ファイルを開く ②ファイルの内容を読み書きする ③ファイルを閉じる の流れです。 構文はご覧のようになって、ファイルを開くのはOpen、閉じるのはClose、データを読み込むのはInputステートメントです。

20160323b.PNG
Openではファイル名を指定します。相対パスでもc:¥などから始まる絶対パスでもOKです。Forのあとのモードは3つ、Inputはファイルを読み込みます。逆にOutputは書き込みます。既存の同名ファイルがあったときは上書きされて以前のは消えます。既存に追加して書き込むときはAppendです。Asの後の番号はファイル番号で1,2,3でOKです。そのあとのInputやCloseもそれに対応するので、特に複数のファイルを開いたときは読み書きしたいファイル番号を指定します。ちなみに今回読み込むテキストファイルはご覧のようにファイル名がsample.txtで中身がサンプルです!です。

Sub text_reader()
 Open "sample.txt" For Input As #1 'ファイルを開く
 Input #1, s 'データ読み込み
 MsgBox s '表示
 Close #1 'ファイルを閉じる
End Sub
sample.txtを読み込み、その内容をメッセージボックスに表示するプログラムはご覧の感じです。今回は相対パスで同じフォルダにエクセルファイルとテキストファイルがある想定です。2行目は読み込みモードで1番としてsample.txtを開きます。3行目は1番のファイルから1行読み込み変数sに格納します。4行目はメッセージボックスを開き内容は変数sです、ということです。5行目で番号1のファイルを閉じます。

20160323c.PNG
これを実行した結果です。テキストファイルから読み込んだ文字列がメッセージボックスに表示されています。ファイルは複数同時に開くこともでき、そのときはファイル番号で区別します。#1から読み込んだものを加工して#2に書き込むなども可能です。

20160323d.PNG
ちなみに読み込むファイル名を間違えるなどしてファイルが見つからないときはご覧のエラーが出て教えてくれます。次回はファイルに出力するのをノートしたいと思います。

この記事へのコメント


この記事へのトラックバック