ファイルをコピーする(FileCopyステートメント)|Excel VBA |
ファイルをコピーするには、FileCopyステートメントを使います。
▼FileCopyステートメントの構文FileCopy コピー元, コピー先
次のコードは「C:\Tmp\Test.txt」を「C:\Work」フォルダにコピーします。
Sub Sample1() FileCopy "C:\Tmp\Test.txt", "C:\Work\Test.txt" End Sub
「コピー先」にはフォルダ名ではなく、ファイル名を指定する点に留意してください。
次のようにするとエラーになります。
FileCopy "C:\Tmp\Test.txt", "C:\Work\"
Sub Sample2() Dim i As Long For i = 1 To 12 FileCopy "C:\Work\売上テンプレート.xls", "C:\Work\売上_" & i & "月.xls" Next i End Sub
FileCopyステートメントは「コピー先」に、同名のファイルが存在していると、そのファイルを上書きします。このとき確認メッセージは表示されません。
うっかり上書きするのを防ぐには、Dir関数を使用して次のように確認するといいでしょう。
Sub Sample3() Dim ret As Long If Dir("C:\Work\Test.txt") <> "" Then ret = MsgBox("同名のファイルが存在します。" & vbCrLf & _ "上書きしますか?", vbYesNo) If ret = vbNo Then Exit Sub End If FileCopy "C:\Tmp\Test.txt", "C:\Work\Test.txt" End Sub