Sub TEST1()
'CSVファイルを開く
Workbooks.Open "C:\Users\user\Desktop\TEST.csv"
Range("B3") = 9999 'CSVファイルを修正
ActiveWorkbook.Save '上書き保存
ActiveWorkbook.Close '閉じる
End Sub
CSVを開いて編集して上書き保存して閉じてみます。
CSVを開いて編集して上書きして閉じる
では、VBAコードを実行してみます。
VBAコードを実行
まずは、CSVファイルを開きます。
CSVファイルが編集されます。
CSVファイルを上書きして、閉じます。
これで、CSVファイルを上書き保存できます。
上書きできた
CSVファイルを上書き保存できました。
条件を指定して編集する
ForやIfを使って、条件を指定してCSVを編集することもできます。
「B」の商品を検索して「価格」と「数量」を変更するVBAコードです。
Sub TEST2()
'CSVファイルを開く
Workbooks.Open "C:\Users\user\Desktop\TEST.csv"
'商品が「B」である行を検索して、価格と数量に「9999」を入力
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
If Cells(i, "A") = "B" Then
Cells(i, "A").Offset(0, 1) = 9999 '価格
Cells(i, "A").Offset(0, 2) = 9999 '数量
End If
Next
ActiveWorkbook.Save '上書き保存
ActiveWorkbook.Close '閉じる
End Sub
Bを検索して、「価格」と「数量」を変更してみます。
Bの「価格」と「数量」を変更して上書き
実行すると、Bの「価格」と「数量」を変更できます。
上書きできた
Bの「価格」と「数量」を変更できました。
現在パスから指定する
ファイルパスを指定する際に、現在パスを使って指定すると便利です。
Sub TEST3()
'現在ブックからファイルパスを指定して、CSVファイルを開く
Workbooks.Open ThisWorkbook.Path & "\TEST.csv"
Range("B3") = 9999 'CSVファイルを編集
ActiveWorkbook.Save '上書き保存
ActiveWorkbook.Close '閉じる
End Sub
現在パスからCSVファイルを指定して、上書き保存してみます。
現在パスからCSVを指定して上書き
実行すると、CSVファイルを上書きできます。
上書きできた
CSVファイルを上書きできました。
ファイル選択用ダイアログを使う
ファイル選択用ダイアログを使って、CSVファイルを開いて上書き保存してみます。
ファイル選択用ダイアログは「Application.GetOpenFilename」を使います。
Sub TEST4()
'初期フォルダを設定
With CreateObject("WScript.Shell")
.CurrentDirectory = ThisWorkbook.Path '現在のフォルダ
End With
Dim A
'ファイル選択用のダイアログを開く
A = Application.GetOpenFilename(",*.csv")
If A = False Then Exit Sub 'キャンセルの場合は閉じる
Workbooks.Open A 'CSVファイルを開く
Range("B3") = 9999 'CSVファイルを編集
ActiveWorkbook.Save '上書き保存
ActiveWorkbook.Close '閉じる
End Sub