VBAを使って新しいテキストファイルを作成し、テキストデータを書き込む方法は、FileSystemObjectのOpenTextFileを使用することで実現できます。
FileSystemObjectは、ファイルシステムオブジェクトを操作するための標準ライブラリであり、ファイルやフォルダの作成や削除、コピー、移動などを簡単に行うことができます。
OpenTextFileメソッドは、指定したテキストファイルを作成し、文字列を書き込むことができます。
1文字ずつ、1行ずつ、空行の書き込む方法のサンプルソースを用意しました。
ここでは、FileSystemObjectのOpenTextFileを使ってVBAでテキストファイルに文字列を書き込みする方法について説明します。
【サンプルソース】新規にテキストファイルを作成し、文字列を書き込む
以下は、FileSystemObjectのOpenTextFileを使用してVBAで新しくテキストファイルを作成し、文字列を書き込みするサンプルソースです。
Sub WriteTextFileExample()
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 = 2
' ファイルの作成有無を指定
' True:作成する
' False:作成しない
fileCreate = True
' ファイルの文字コードを指定
' 0:ASCIIファイルとして開く
' -1:Unicodeファイルとして開く
' -2:システムの既定値で開く
fileFormat = -2
' テキストファイルを開いてファイルオブジェクトを取得
Set file = fso.OpenTextFile(fileName, ioMode, fileCreate, fileFormat)
' 1文字ずつ書き込む
file.Write "a"
file.Write "b"
file.Write "c"
' 改行して1行書き込む
file.Write vbCrLf
file.WriteLine "これは1行です。"
' 空行を書き込む
file.WriteLine
' ファイルを閉じる
file.Close
' オブジェクトの解放
Set file = Nothing
Set fso = Nothing
' メッセージを表示する
MsgBox "テキストファイルの書き込みが完了しました。"
End Sub
上記のサンプルコードでは、まずFileSystemObjectを生成しています。
次に、作成したいテキストファイルのパスを指定しています。
ファイルの開き方で、「新規書込モード」を指定しています。
「新規書込モード」では新規にテキストファイルに文字列を書き込みします。
すでにファイルが存在し文字列が書き込まれている場合、上書きで文字列を書き込みします。
ファイルの作成有無で、「作成する」を指定しています。
すでにファイルが存在する場合、新規で作成し直します。
また、「作成しない」を指定した時に、ファイルが存在しないとエラーが発生します。
ファイルの文字コードで、「システムの既定値」を指定しています。
次に、テキストファイルを作成して、ファイルオブジェクトを取得しています。
Writeメソッドで1文字ずつ文字をテキストファイルに書き込みしています。
Writeメソッドは、改行を書き込みません。
Writeメソッドを使って改行を書き込みしたい場合は、「vbCrlf」を指定します。
WriteLineメソッドは、指定された文字列を書き込み、改行も行末に書き込みします。
WriteLineメソッドになにも指定しない場合、空行が書き込まれます。
注意点としては、必ずファイルを閉じるようにしてください。
まとめ
VBAで新しくテキストファイルを作成し、文字列を書き込みする方法として、FileSystemObjectのOpenTextFileを使用する方法を紹介しました。
テキストファイルの書き込み方法として、WriteメソッドとWriteLineメソッドがあります。
状況に応じて使い分けましょう。
以上です。
最後まで読んでいただきありがとうございました。
この記事をシェアしていただけると喜びます。

