FileCopyを使用した実装
やりたい事
Templateファイルを元に別フォルダにファイルをコピーするプログラムを作成します。
考えられるエラー処理もいれて実装します。
FileCopyは、コピー先に同名ファイルがある場合には上書きしてしまうので今回は、同名ファイルがある場合はコピーせずに終了します。
今回のサンプルコードではエラーメッセージは、ログに出力ではなくMsgboxで出力とします。
サンプルコード
Sub copyFileSample2() Dim sourcePath As String Dim sourceFile As String Dim didtinationPath As String Dim distinationFile As String sourcePath = "D:\Excel" sourceFile = "macro.xlsm" distinationPath = "D:\Excel\work" distinationFile = "macro.xlsm" If Dir(sourcePath & "\" & sourceFile) = "" Then MsgBox "コピー元のファイルパスがみつかりません:" & sourcePath & "\" & sourceFile Exit Sub End If If Dir(distinationPath, vbDirectory) = "" Then MsgBox "コピー先のフォルダが見つかりません:" & distinationPath Exit Sub End If If Dir(distinationPath & "\" & distinationFile) <> "" Then MsgBox "コピー先に同名のファイルが存在します:" & distinationPath & "\" & distinationFile Exit Sub End If On Error Resume Next FileCopy sourcePath & "\" & sourceFile, distinationPath & "\" & distinationFile If Err.Number = 70 Then MsgBox "すでにファイルが開かれてます。ファイルを閉じてから実行してください。" Exit Sub End If End Sub
参考資料
関連記事
Excel VBA ファイル(エクセルブック)をコピーする FileCopy
FileCopyステートメントを使用してファイルをコピーするやりたい事エクセルブックを別のフォルダにFileCopyステートメントでコピーする方法を解説します。FileCopyステートメントは、コピー先に同名ファイルがある場合は上書きします...
Excel VBA ファイル(エクセルブック)をコピーする FileSystemObject
「FileSystemObject」使ってファイルをコピーする方法を解説します。FileCopyステートメントを使用してファイルコピーする方法は関連記事で解説しています。
コメント