実現したいこと
VBAでフォルダの中にあるCSVファイルの編集をするプログラムを書いています。
その中に「処理したCSVファイルを「更新_元のファイル名」として新しく保存する」処理を
書いてプログラムを実行しました。
私の実現したいことは以下のとおりです。
- 1回目にプログラムを実行
0. フォルダの中に入っているCSVファイルに対して処理
0. 処理したCSVは「更新_元のファイル名」として同じフォルダの中に保存する。
- 2回目にプログラムを実行
0. 1回目の時に処理したCSVは「更新_元のファイル名」として上書き保存する。
0. フォルダの中に入っているCSVで新たなファイルがあったら「更新_元のファイル名」として同フォルダの中に保存する
発生している問題・エラーメッセージ
「更新_元のファイル名」も反応してしまい、CSVファイルが作られてしまう。
↓
「更新_更新_元のファイル名」
↓
「更新_更新_更新_元のファイル名」
↓
....(プログラムを実行するたびに作られる)
該当のソースコード
VBA
1'処理したCSVファイルを「更新_元のファイル名」として新しく保存 2str = ActiveWorkbook.Name 3newfilename = "更新_" & str 4Application.DisplayAlerts = False 5ActiveWorkbook.SaveAs folderpath & "\" & newfilename 6ActiveWorkbook.Close 7Application.DisplayAlerts = True 8End If 9Next
試したこと
https://www.relief.jp/docs/excel-vba-save-same-file-name-force.html
Workbook.SaveAsメソッドを実行する前に以下VBAを入れても思い通りの動作にならない。
VBA
1Application.DisplayAlerts=False
補足情報(FW/ツールのバージョンなど)
Microsoft Excel 2016
Nextがあることから恐らくForループがあって、その中でCSVファイルを拾ってきているものと思われます。
そこで「更新_*.csv」を拾わないようにすればよいかと思いますが、ちょうどそこの部分のコードが載っていないので回答ができません。

回答2件
あなたの回答
tips
プレビュー