テキストデータにデータを書き込む(Print#)

テキストデータに追記するPrint#ステートメントについて。1行の文字列を追記する場合に使用

'テキストデータの追記
Print #1, "文字列"

Openステートメントで開いたテキストデータに追記するには「Print#」ステートメントを使用します

Print#ステートメントは、csvデータのようなテキストデータはなく、文章として表示させる場合に使用します

Print#ステートメントは、コードに記載した文字列をテキストデータに書き込むので操作履歴や処理履歴などに使用することが出来ます
また、iniファイルなどの設定データをExcel外部にデータ保存する際にも使用できます

引数1つ目の「#1」はOpenステートメントで開いたときのファイル番号です
引数2つ目に追記する文字列を指定します、文字列なので「”」で囲みます

文字列の末尾には自動的に改行文字が追加されますので、ステートメントの実行前に改行文字を挿入する必要はありません

追記の動き

追記の動きの確認をするうえで重要なのが、Openステートメントでのモード選択なります
ここの設定で、既存の文字列を消去するか、それに追記していくかを選択します
ここでは、追記モードの「Append」の設定で行います

Print#ステートメント自体が文章入力の意味合いが多いので、基本的には追記モードをよく使用します

追記をするテキスト元データ
元となるテキストデータ

この画像のテキストデータに追記を行います
なお、上記にあるようにPrint#ステートメントの末尾には改行文字が付与されますが、前には挿入されません
画像を確認してもらうと分かるように、4行目に空白行が存在している状態です
この状態を前提としています

Open ThisWorkbook.Path & "\新しいテキスト ドキュメント.txt" For Append As #1
Print #1, "新しい追加行,白"
Print #1, "新しい追加行,黒"
Close #1

このコードを実行します
追記モードで開いて2行追記する処理です

追記が実行された状態のテキストデータ
コード実行結果

コードを実行すると、2行が追記されていることが確認できます
また、6行目に空白行ができていることからも改行文字がちゃんと付与されていることも確認できます

Print #1, ""

また、このコードのように追記する文字列を空白に指定することで空白行を挿入することも可能です

Print #1, "新しい追加行", "白"
Print #1, "新しい", "追加行", "黒"

このコードのようにデータを「,」で区切って複数データを一括で指定できます
ただ、Print#ステートメントの場合はうまくスペースが入らないため、基本的には「”」で囲んだ1つの文字列データを指定していきます

「,」を使って追記したときの実行結果
「,」で区切って指定した結果

コードを実行すると、この画像の様にスペースが入ってしまいます
非常に見にくくなることこの上ないので、「,」で区切るcsvデータにはWrite#ステートメントを使用してください

このPrint#ステートメントで書き込まれたデータは、LineInput#ステートメントを使用して読み込みを行います