構文
FileCopy sourse, destination
sourse・・・・・・コピー元ファイルをフルパスで指定
destination・・・・コピー先をファイル名も含めてフルパスで指定
destination・・・・コピー先をファイル名も含めてフルパスで指定
FileCopyステートメントはファイルをコピーします。
FileCopyステートメントのサンプルコード
Public Sub sample() '■マクロ実行中のファイルパスのsample.xlsxをC:\vba\sample.xlsxにコピー FileCopy ThisWorkbook.Path & "\" & "sample.xlsx", "C:\vba\sample.xlsx" '■ファイル名を変更してコピー FileCopy "C:\vba\sample1.xlsx", _ "C:\vba\sample2.xlsx" '■コピー先に同一ファイルがあった場合は上書き保存(確認メッセージは表示なし) FileCopy "C:\vba\sample1.xlsx", _ "C:\vba\sample2.xlsx" '■コピー元のファイルが存在しない場合は、実行時エラー '53':ファイルが見つかりません。 FileCopy ThisWorkbook.Path & "\" & "aaa.xlsx", "C:\vba\sample.xlsx" '■コピー先のパスが存在しない場合は、実行時エラー '75':パス名が無効です。 FileCopy ThisWorkbook.Path & "\" & "sample.xlsx", "C:\aaa\sample.xlsx" End Sub
注意点
- フルパスで指定せず、パスを省略するとカレントフォルダが対象になります。
- コピー後のファイル名は元のファイル名と異なっていても問題ありません。
(名前を変更してコピーが可能です) - コピー先に既にファイルがある場合は上書きします。(メッセージなど表示せず上書きするため注意)
- 事前にDir関数でファイルが存在するかどうかチェックした方が望ましいです。
関連記事
- ファイルまたはフォルダを抽出する【Dir関数】【ExcelVBA】
- 現在のシートを表示したまま、シートコピー(追加)する【ExcelVBA】
- セル範囲を画像としてコピーする【CopyPictureメソッド】【ExcelVBA】
コメント