テキストファイルを扱う
2021-04-16 00:00:00
テキストファイルを直接編集できると便利なことがあります。テキストファイルはフォントやフォーマットなどの設定がない文字だけの情報を格納しているファイルで、Windows標準のメモ帳であつかえるファイルの形式です。
ファイルを作成してテキストを追加するサンプルは以下のようになります。
Dim fileNum As Integer Dim fileName As String fileName = "C:\data\out.txt" fileNum = FreeFile Open fileName For Output As #fileNum Print #fileNum, "1行目" Print #fileNum, "2行目" Close #fileNum
1行目、2行目とだけ書かれたテキストファイルが作成されます。(メモ帳などで開いて確認することができます。)fileNumは1,2,3など自分で設定してもよいですが、FreeFile関数を利用すると使える数字を返してくれるので安心です。
このコードではファイルがなければ新規に作成し、すでにある場合には上書きしてしますます。上書きではなく追記したい場合にはOpenステートメントでOutputの代わりにAppendを使います。
Open fileName For Output As #fileNum
Printステートメントでは文字列をそのまま書き出すだけでなく、下のようにTabやSpcやセミコロンを使った書き方もあります。
Print #fileNum, "ABC" Print #fileNum, '空白行 Print #fileNum, "ABC"; Tab; "DEF"; Tab; "GHI" '14文字ごと Print #fileNum, "ABC"; Tab(10); "DEF"; Tab(20); "GHI" '10文字目、20文字目からスタート Print #fileNum, "ABC"; Spc(5); "DEF"; Spc(5); "GHI" '間に5個スペース Print #fileNum, "ABC"; "-"; "DEF" '続けて Print #fileNum, "ABC" & "-" & "DEF" '上と同じ
結果は以下の通りです。
テキストファイルを読み込むときはOpenステートメントにInputを指定します。テキストファイルを読んで、そのままイミディエイトウィンドウに表示するコードは以下のようになります。
Dim buf As String Dim fileNum As Integer Dim fileName As String fileName = "C:\data\in.txt" fileNum = FreeFile Open fileName For Input As #fileNum Do Until EOF(fileNum) Line Input #fileNum, buf Debug.Print buf Loop