テキストファイルの新規作成
シートに新規作成のコマンドボタンを作成します。
クリックイベントにテキストファイルを新規作成するVBAを入力します。
・FileSystemObjectオブジェクトと、テキストファイルの操作を行うTextStreamオブジェクトを使用します。
・新規作成はCreateTextFileメソッドを使用します。
構文:CreateTextFile(ファイル名,上書きのブール値)
上書きする場合はTRUE、しない場合はFALSEを指定します。
Private Sub CommandButton1_Click()
Dim tFso As FileSystemObject
Dim tFile As TextStream
Set tFso = New FileSystemObject
Set tFile = tFso.CreateTextFile("C:\Test2\メモ.txt", True)
Set tFile = Nothing
Set tFso = Nothing
End Sub
作成したフォルダを見ると、サイズ0のテキストファイルが作成されています。
テキストファイルを開く~書き込み~閉じる
テキストファイルに文字列を書き込むVBAです。
・文字列を書き込むにはWriteメソッドを使用します。
・文字列+改行を書き込むにはWriteLineメソッドを使用します。
Private Sub CommandButton2_Click()
Dim tFso As FileSystemObject
Dim tFile As TextStream
Set tFso = New FileSystemObject
Set tFile = tFso.OpenTextFile("C:\Test2\メモ.txt", ForWriting)
tFile.Write ("あいうえお")
tFile.Write ("かきくけこ")
tFile.WriteLine ("さしすせそ")
tFile.WriteLine ("たちつてと")
tFile.Close
End Sub
書き込みを行ったテキストです。
Writeで行った「かきくけこ」の次までが改行されていません、WriteLineで行った「さしすせそ」から改行されています。
テキストファイルを開く~読み込み~閉じる
テキストファイルを読み込むVBAです。
・テキストファイルから読み込むには、指定された文字列を読み込むReadメソッドと、行単位で読み込むReadLineがあります。ここではReadLineを使用します。
・Do While Loopを使用し、ループしながら1行づつ読み込みます。
・ファイルの末尾を読み込もうとするとエラーになるので、AtEndOfStreamプロパティでEOF(End Of File)を調べます。
・ReadLineで読み込んだ結果は、セルに表示します。
Private Sub CommandButton3_Click()
Dim tFso As FileSystemObject
Dim tFile As TextStream
Dim lr As Long
Set tFso = New FileSystemObject
Set tFile = tFso.OpenTextFile("C:\Test2\メモ.txt", ForReading)
lr = 8
Do While tFile.AtEndOfStream <> True
Cells(lr, 4) = tFile.ReadLine
lr = lr + 1
Loop
Set tFile = Nothing
Set tFso = Nothing
End Sub
実行結果です。
1行読み込みD8セルに表示し、改行されD9セルに表示されています。