
FileSystemObjectのCopyFileメソッドについてです。
Menu
CopyFileメソッド
概要
ファイルを指定したフォルダーにコピーします。
構文
FileSystemObject.CopyFile source , destination [overwrite]
[ ]は省略可という意味
CopyFileの引数
引 数 | 必須 / 省略可 | 詳 細 |
コピーするファイル | 必須 | ・コピーするファイルパスを指定。 |
コピー先フォルダー (destination) | 必須 | ・コピー先のフォルダーパスを指定。 |
上書き (overwrite) | 省略可 | ・ファイルを上書きするかブール値で指定。 |
VBAサンプル
指定したファイルをコピー
Folder1からFolder2に、test1.txtをコピーします。
1 2 3 4 5 6 7 8 | Sub test() Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") '1つの指定したファイルを別フォルダーにコピぺ fso.CopyFile "D:\FSO\Folder1\test1.txt", "D:\FSO\Folder2\" End Sub |
複数ファイルをワイルドカードでコピー
Folder1からFolder2に、ワイルドカード*.txtを指定で、拡張子が.txtのみの複数ファイルがコピーできます。
例えばワイルドカードでテキストファイルのみ(*.txt)とかcsvファイル(*.csv)のみとかをコピーしたい場合に有効活用できます。
1 2 3 4 5 6 7 8 | Sub test2() Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") '複数のテキストファイルをワイルドカードで別フォルダーにコピぺ fso.CopyFile "D:\FSO\Folder1\*.txt", "D:\FSO\Folder2\" End Sub |
上書きしない(False指定)場合
上書きしない指定(False)をして、コピー先フォルダーに、すでに同じ名前のファイルがある場合はエラーになります。
1 2 3 4 5 6 7 8 9 | Sub test3() Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") 'False指定した場合 'コピぺ先フォルダーに同じ名前のファイルがある場合はエラー fso.copyFile "D:\FSO\Folder1\test1.txt", "D:\FSO\Folder2\", False End Sub |