VBAを使ってすでに存在するテキストファイルに、テキストデータを追記する方法は、FileSystemObjectのOpenTextFileを使用することで実現できます。
FileSystemObjectは、ファイルシステムオブジェクトを操作するための標準ライブラリであり、ファイルやフォルダの作成や削除、コピー、移動などを簡単に行うことができます。
OpenTextFileメソッドは、指定したテキストファイルを開き、ファイルの末尾に文字列を書き込むことができます。
ここでは、FileSystemObjectのOpenTextFileを使ってVBAで既存のテキストファイルに文字列を追記する方法について説明します。
【サンプルソース】すでに存在するテキストファイルに追記する
以下は、FileSystemObjectのOpenTextFileを使用してVBAですでに存在するテキストファイルを開き、文字列を追記するサンプルソースです。
Sub AppendTextFileExample()
Dim fso As Object
Dim file As Object
Dim filePath As String
' ファイルパスの指定
filePath = "C:\example.txt"
' FileSystemObjectの生成
Set fso = CreateObject("Scripting.FileSystemObject")
Dim fileName As String
Dim ioMode As Integer
Dim fileCreate As Boolean
Dim fileFormat As Integer
' ファイルパスを指定
fileName = "D:\200_work\100_sample\AAA\A001.txt"
' ファイルの開き方を指定
' 1:参照モード
' 2:新規書込モード
' 8:追記モード
ioMode = 8
' ファイルの作成有無を指定
' True:作成する
' False:作成しない
fileCreate = True
' ファイルの文字コードを指定
' 0:ASCIIファイルとして開く
' -1:Unicodeファイルとして開く
' -2:システムの既定値で開く
fileFormat = -2
' テキストファイルを開いてファイルオブジェクトを取得
Set file = fso.OpenTextFile(fileName, ioMode, fileCreate, fileFormat)
' ファイル末尾に書き込む
file.WriteLine "追記1行目です。"
file.WriteLine "追記2行目です。"
file.WriteLine "追記3行目です。"
' ファイルを閉じる
file.Close
' オブジェクトの解放
Set file = Nothing
Set fso = Nothing
' メッセージを表示する
MsgBox "テキストファイルの書き込みが完了しました。"
End Sub
上記のサンプルコードでは、まずFileSystemObjectを生成しています。
次に、開きたいテキストファイルのパスを指定しています。
ファイルの開き方で、「追記モード」を指定しています。
「追記モード」ではテキストファイルの末尾に文字列を追記します。
ファイルにすでに書き込まれている文字列はそのままに、指定された文字列を追記してくれます。
ファイルの作成有無で、「作成する」を指定しています。
すでにファイルが存在する場合、そのファイルを開きます。
ファイルが存在しない場合、新しくファイルを作成します。
ファイルの文字コードで、「システムの既定値」を指定しています。
次に、テキストファイルを開き、ファイルオブジェクトを取得しています。
WriteLineメソッドは、指定された文字列を書き込み、改行も行末に書き込みします。
WriteLineメソッドになにも指定しない場合、空行が書き込まれます。
ちなみにWriteLineメソッドのかわりに、Writeメソッドを使うと指定された文字列を書き込みますが、改行はされません。
同じ行にどんどん書き込みをしたい場合に利用できます。
注意点としては、最後に必ずファイルを閉じるようにしてください。
まとめ
VBAで既に存在するテキストファイルを開き、文字列を書き込みする方法として、FileSystemObjectのOpenTextFileを使用しました。
テキストファイルの書き込み方法として、WriteメソッドとWriteLineメソッドがあります。
状況に応じて使い分けましょう。
以上です。
最後まで読んでいただきありがとうございました。
この記事をシェアしていただけると喜びます。

