エクセルVBAでテキストファイルを動的に読み込み、置換して上書き保存するコード

競馬_VBA

そのままコピペで使えます。

手順

①Application.GetOpenFilenameでフォルダを開く

②FSOに指定したパスを読み込ませる

③.ReadAllをテキストファイルを読み込む

④Replace関数で置換する

⑤Split関数で書き込み用テキストを作る

⑥テキストループさせてファイルを作成する

⑦ファイルを上書き保存する

 

サンプルコード

Sub TXTReplace()

Dim file_path As String ‘読み込み用テキスト
file_path = Application.GetOpenFilename(“TXTファイル,*.txt”) ‘CSVファイルを選択する’
If file_path = “False” Then Exit Sub ‘キャンセルなら終了’

Dim FSO As Object
Set FSO = CreateObject(“Scripting.FileSystemObject”)
With FSO.GetFile(file_path).OpenAsTextStream

Dim read_text_row As String ‘読み込み用テキスト
read_text_row = .ReadAll ‘最後まで読み込み
read_text_row = Replace(read_text_row, “置換対象文字列“, “置換したい文字“)

Dim replace_text_row() As String ‘ 書き込み用テキスト
replace_text_row = Split(read_text_row, vbCrLf)
.Close
End With
Set FSO = Nothing ‘ 開放

Call Output_File(replace_text_row, file_path)

MsgBox “処理完了”

End Sub

Sub Output_File(rep_text() As String, ByVal file_path)
Dim i As Long
Open file_path For Output As #1

For i = 1 To UBound(rep_text)
Print #1, rep_text(i)
Next i
Close #1
End Sub

コメント

タイトルとURLをコピーしました