この記事では
・複数のフォルダをコピーする方法
を記載します!
ワイルドカードを使用できる
・FileSystemObjectのCopyFolderメソッド
を使用します!
VBAコード
ここでは例として、
・フォルダ「work」の全てのフォルダを
・フォルダ「test」へ
コピーします。
Option Explicit
Sub sample()
Dim fso As Object
Dim targetfolders As String
Dim folder As String
'コピーするフォルダを指定
targetfolders = "C:\Users\user\Desktop\work\*"
'コピー先のフォルダを指定
folder = "C:\Users\user\Desktop\test"
Set fso = CreateObject("Scripting.FileSystemObject")
'フォルダをコピー
fso.CopyFolder targetfolders, folder
'後片付け
Set fso = Nothing
End Sub
実行結果
複数のフォルダをコピーできました。
備考(FileSystemObjectのCopyFolderの第3引数について)
●第3引数を省略(=True)した場合
コピー先に同名フォルダが存在した場合、強制的に上書きされます。
●第3引数にFalseを指定した場合
コピー先に同名フォルダが存在した場合、エラーになります。
'フォルダをコピー
fso.CopyFolder targetfolders, folder, False
↑フォルダのコピーでエラーとなっているのに、エラーメッセージは「同名のファイルが存在しています」と表示されます。
参考①
上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。
●「FileSystemObject」の「CopyFolder」メソッド
参考②
以下の記事で
・複数のファイルをコピーする方法
を紹介しています。