動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2503(ビルド18623.20178クイック実行)
「excelvba filecopy 上書き しない」
といった検索がこのサイト『インストラクターのネタ帳』で行われていました。
VBAのFileCopy関数を使うとファイルのコピー(複製)ができますが、
第2引数Destinationに指定されたファイルが存在するときには、上書きを行います。
[スポンサードリンク]
これを上書きしないようにするには、どのようなコードを書けばいいのかを調べていらしたのでしょう。
FileCopy関数で上書きしないようにするサンプルマクロ
Cドライブtempフォルダーにsample_org.txtを用意しておいて、以下のマクロを実行してみてください。
Sub FileCopyで上書きしないように()
Dim org_file As String, new_file As String
org_file = "C:\temp\sample_org.txt"
new_file = "C:\temp\sample_new.txt"
If Dir(new_file) <> "" Then
MsgBox new_file & " が存在するのでファイルのコピーを中止します。"
Exit Sub
End If
FileCopy org_file, new_file
MsgBox "ファイルのコピーが完了しました!"
End Sub
Dim org_file As String, new_file As String
org_file = "C:\temp\sample_org.txt"
new_file = "C:\temp\sample_new.txt"
If Dir(new_file) <> "" Then
MsgBox new_file & " が存在するのでファイルのコピーを中止します。"
Exit Sub
End If
FileCopy org_file, new_file
MsgBox "ファイルのコピーが完了しました!"
End Sub
サンプルマクロで行っている処理
VBAのDir関数を使えば、ファイルが存在するかどうかを調べられます。
上記のマクロではDir関数で複製して作成するファイルが存在するかを調べて、存在する場合にはメッセージを表示してマクロを終了しています。
If Dir(new_file) <> "" Then MsgBox new_file & " が存在するのでファイルのコピーを中止します。" Exit Sub
Dir関数を使ったチェックのあとに、FileCopy関数を使った処理を入れています。
End If FileCopy org_file, new_file MsgBox "ファイルのコピーが完了しました!"
[スポンサードリンク]
- Newer:Windows11でPIN入力画面が表示されない
- Older:Excel VBAでパワポファイルを閉じる
Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » VBAのFileCopy関数で上書きしないように