構文
Object.CopyFileSource, Destination [, overwrite]
Source・・・・コピーするファイルのフルパスを指定 ファイル名はワイルドカード指定可能。
Destination・・コピー先のパスとファイル名を指定
overwrite・・・True→上書きする/False→上書きしない 省略時Trueが初期値
Destination・・コピー先のパスとファイル名を指定
overwrite・・・True→上書きする/False→上書きしない 省略時Trueが初期値
Sourceで指定したファイルをDestinationに指定したファイルをコピーします。
overwriteをFalseにしたうえで、同ファイルが存在した場合はエラー発生します。
overwriteをFalseにしたうえで、同ファイルが存在した場合はエラー発生します。
CopyFileメソッドのサンプルコード
Public Sub sample()
'■FileSystemObjectの宣言
Dim fso As Object: Set fso = CreateObject("Scripting.FileSystemObject")
'■"C:\vba\Book1.xlsx"を"C:\vba\sub\Book1.xlsx"にコピー
fso.CopyFile "C:\vba\Book1.xlsx", "C:\vba\sub\Book1.xlsx"
'■"C:\vba\Book1.xlsx"を"C:\vba\sub\Book2.xlsx"に名前変更してコピー
fso.CopyFile "C:\vba\Book1.xlsx", "C:\vba\sub\Book2.xlsx"
'■xlsx等のエクセルファイルだけでなく、他ファイルも同様にコピー可能
fso.CopyFile "C:\vba\word1_20220318.doc", "C:\vba\word1_20220317.doc"
'■"C:\vba内の全てのxlsxファイルを"C:\vba\sub\"にコピー(名前はコピー元同様)
fso.CopyFile "C:\vba\*.xlsx", "C:\vba\sub\"
End Sub
注意点
- パスが存在しなければエラー発生します。FolderExistsで事前確認必要です。
実行時エラー76「パスが見つかりません。」 - overwrite=False時、同名のファイルが存在すればエラー発生します。FilerExistsで事前確認必要です。
実行時エラー58「既に同名のファイルが存在しています。」 - コピー元とコピー先のフォルダが同一で、ファイル名だけが異なる場合は、
ファイル名変更してのコピーになります。 - コピー先をフォルダパスで指定する場合、ファイル名はコピー元のまま移動します。



コメント