VBA33_テキストファイルに追記する方法

おはようございます! フクロウに似ているBenです。はアマチュアながらシステム開発もしているので、ソフトウェアやWEBアプリの作成も行っています。その中で、エラーなどのログをファイルに記録することもあり、そういう時に追記モードが便利です。ということで、今回はテキストファイルの追記です。

20160324c.png
追記に使用する元のテキストファイルは前回使用したご覧のsample.txtです。データです!の次の行から追記します。ちなみに、指定したテキストファイルがないときは、Outputモードと同じくファイルを新規作成します。

Sub Event_Logger()
 For i = 1 To 10 '変数iを1→10まで繰り返す
  Open "d:\sample.txt" For Append As #1 'ファイルを開く
  Print #1, "イベントログ" & i 'ファイルに書き込み
  Close #1 'ファイルを閉じる
 Next 'iを1増やしForに戻る
End Sub
今回のコードです。今回は前までのように1行読み書きして表示するだけでなく、ファイルへの追記を繰り返す想定で、イベントログ1から10までの10行をその都度追記モードでファイルを開いて追加します。なので10回ファイルの開閉をしています。2行目は変数iを1から10まで繰り返すもので、6行目のNextとの間を10回繰り返します。3行目でファイルを追記モードで開き、4行目で書き込み、5行目でファイルを閉じています。3行目から5行目まではiが1から10になるまでの10回繰り返しています。

20160325a.png
実行すると御覧のとおり、データです!の次の行からイベントログ+i(1から10)の記録の繰り返しが結果として追記されています。今回はイベントログの追記をイメージしたものなので、10回もファイルの開閉を行っていますが、もし10個の書き込みを一気に行うのでしたら開閉は1回にした方が効率がいいですね。その場合は2行目の3行目、5行目と6行目をそれぞれ入れ替えると、ファイルを開いてから10回書き込みを繰り返してファイルを閉じるようになり、1回のファイル開閉で全て終えるのでとても効率的です。

これでファイルの入出力のモード3つそれぞれノートしました。次回はより実用的な想定で、読み取ったデータを条件分岐して処理する例をノートします。

この記事へのコメント


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