Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » VBAのFileCopy関数で上書きしないように

VBAのFileCopy関数で上書きしないように

動作検証バージョン: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

サンプルマクロで行っている処理

VBAのDir関数を使えば、ファイルが存在するかどうかを調べられます。

上記のマクロではDir関数で複製して作成するファイルが存在するかを調べて、存在する場合にはメッセージを表示してマクロを終了しています。

 If Dir(new_file) <> "" Then
  MsgBox new_file & " が存在するのでファイルのコピーを中止します。"
  Exit Sub

Dir関数を使ったチェックのあとに、FileCopy関数を使った処理を入れています。

 End If
    
 FileCopy org_file, new_file 
 MsgBox "ファイルのコピーが完了しました!"
[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » VBAのFileCopy関数で上書きしないように

「VBA関数」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.