
FileオブジェクトとFolderオブジェクトのCopyメソッドについてです。
Copyメソッド
概要
ファイルやフォルダーを指定したフォルダーにコピーします。
構文
【ファイルの場合】
FileObject.Copy destination,[overwrite]
【フォルダーの場合】
FolderObject.Copy destination,[overwrite]
[ ]は省略可
Copyメソッドの引数
引 数 | 必須 / 省略可 | 詳 細 |
コピー先 | 必須 | コピー先のフォルダーパスを指定。 |
上書き | 省略可 | 上書きするかをBool値で指定。 |
VBAサンプル
ファイルのコピー
FileオブジェクトのCopyメソッドを使用するには、FileSystemObjectのGetFileメソッドでファイルを指定後にFileオブジェクトが返るので、FileオブジェクトのCopyメソッドを使用します。
1 2 3 4 5 6 7 8 9 10 11 12 13 | Sub test() '変数 Dim fso As Object Dim f As File 'FileSystemObjectオブジェクトをセット Set fso = CreateObject("Scripting.FileSystemObject") 'FileSystemObjectオブジェクトのGetFileメソッドでFileオブジェクトをセット Set f = fso.GetFile("D:\FSO\Folder1\test.xlsx") 'FileオブジェクトのCopyメソッドでコピー f.Copy "D:\FSO\Folder2\" End Sub |
もしくは下記のような短縮した書き方もできます。
1 2 3 4 5 6 7 8 | Sub test2() 'FileSystemObjectを宣言 Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") 'FileSystemObjectのGetFileメソッドでFileオブジェクトを返させてCopyメソッドを使用 fso.GetFile("D:\FSO\Folder1\test.xlsx").Copy ("D:\FSO\Folder2\") End Sub |
※複数のファイルをコピーしたい場合は、FileSystemObjectのCopyFileメソッドを使用します。
フォルダーのコピー
FolderオブジェクトのCopyメソッドを使用するには、FileSystemObjectのGetFolderメソッドでフォルダーを指定後にFolderオブジェクトが返るので、FolderオブジェクトのCopyメソッドを使用します。
1 2 3 4 5 6 7 8 9 10 11 12 13 | Sub test3() '変数 Dim fso As Object Dim fol As Folder 'FileSystemObjectオブジェクトをセット Set fso = New Scripting.FileSystemObject 'FileSystemObjectオブジェクトのGetFolderメソッドでFolderオブジェクトをセット Set fol = fso.GetFolder("D:\FSO\Folder1") 'FolderオブジェクトのCopyメソッドでコピー fol.Copy "D:\FSO\test\" End Sub |
もしくは下記のような短縮した書き方もできます。
1 2 3 4 5 6 7 8 | Sub test4() 'FileSystemObjectを宣言 Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") 'FileSystemObjectのGetFolderメソッドでFolderオブジェクトのCopyメソッドを使用 fso.GetFolder("D:\FSO\Folder1").Copy ("D:\FSO\test\") End Sub |
※複数のフォルダーをコピーしたい場合は、FileSystemObjectのCopyFolderメソッドを使用します。