MEMO blog

主に自分用のメモです

VBAでテキストファイルの操作

VBAでテキストファイルの操作

FileSystemObjectを使用する場合

'入力----------------------------------------------------
' "MS Scripting Runtime"の参照設定が必要
Dim fso As New FileSystemObject ' FileSystemObject
Dim ts As TextStream            ' TextStream

Set ts = fso.OpenTextFile(in_file_path, ForReading)

Dim buf As String
Do Until ts.AtEndOfStream
    buf = ts.ReadLine
Loop

ts.Close
Set ts = Nothing
Set fso = Nothing


'出力----------------------------------------------------
' "MS Scripting Runtime"の参照設定が必要
Dim fso As New FileSystemObject ' FileSystemObject
Dim ts As TextStream            ' TextStream
Set ts = fso.CreateTextFile(out_file_path, True)

ts.WriteLine buf

ts.Close
Set ts = Nothing
Set fso = Nothing


' ※※※※※※※※※※※※※※※※※※※※※※※※※※※
' "MS Scripting Runtime"の参照設定をしていない時は
' FileSytemObjectとTextStreamの宣言は以下のようにする
'Dim fso As Object               ' FileSystemObject
'Set fso = CreateObject("Scripting.FileSystemObject")
'Dim ts As Object                ' TextStream
' ※※※※※※※※※※※※※※※※※※※※※※※※※※※

Open を使う場合

Dim buf As String
Dim f_num As Long: f_num = FreeFile 'ファイルのインデックス

'入力----------------------------------------------------
Open in_file_path For Input As f_num
    Line Input #f_num, buf '1行読み込み(一括読み込み)
Loop
Close f_num


'出力----------------------------------------------------
' ※追記の場合はOutputをAppendに変更する
Open out_file_path For Output As f_num
    Print #f_num, buf 'テキストを出力
Loop
Close f_num

参考

TextStream ファイルを読み込む(Read,ReadLine,ReadAll) | ExcelWork.info

CSVファイルを読み込む:Excel VBA|即効テクニック|Excel VBAを学ぶならmoug