Excel VBAでCSVファイルを編集(上書き保存編集)するマクロを紹介します。CSVでデータ管理している場合等で使用します。
今回の事例では「test_1.csv(事前準備必要)」ファイルをExcelのワークシート形式で開いて指定箇所を編集して閉じるだけの処理を行います。下の図がマクロ処理結果のイメージです。
Sub CSVファイルのデータを変更する()
'ファイルのパスを指定する
Dim filePath As String
filePath = "C:\test\test_1.csv"
'CSVファイルを開く(今回はCSVファイルのエンコーディングをShift_JIS(Origin:932)で指定)
'CSVファイルを開くときに文字化けするようであれば、csvファイルをtxtファイル形式(UTF-8)で保存して、
'Origin:65001で実行すると開けます
Workbooks.OpenText Filename:=filePath, Origin:=932, DataType:=xlDelimited, Comma:=True, Local:=True
'2行目の2列目の値を変更する
Dim wb As Workbook
Set wb = ActiveWorkbook
wb.Sheets(1).Cells(2, 2).Value = "りんご"
'ファイルを上書き保存する
wb.Save
'ファイルを閉じる(一時的にApplication.DisplayAlert=falseにして上書きするか不問で閉じる)
Application.DisplayAlerts = False
wb.Close
Application.DisplayAlerts = True
End Sub
今回の事例ではCSVファイルの格納先とファイル名と変更箇所まで具体的に指定していますが、実際は複数ファイルで編集該当箇所を割り出して編集することが多いです。その場合、本マクロを応用しての対応となりますが、それはまた別の機会で紹介します。
コメント