●概要●
FileSystemObjectのCopyFileメソッドを利用すると、複数ファイルをまとめてコピーすることができます。引数Sourceには、コピー元のファイル名を指定します。
このとき、ワイルドカードを利用することで複数ファイルを指定することができます。
また、引数Destinationに指定するパス名の末尾にパスセパレータ(\)をつけると、コピー先がファイルではなくフォルダと見なされます。
引数OverWriteFilesには、コピー先に同名のファイルが存在するときに、上書き保存するかを指定します。
構文 オブジェクト.CopyFile Source, Destination, [OverWriteFiles = True])
設定項目 内容
オブジェクト FileSystemObject
Source コピー元ファイル名
Destination コピー先ファイル(フォルダ)名
OverWriteFiles 上書き保存するかどうかの指定
次のサンプルは、自身のブックがあるフォルダの配下にある「Sample」フォルダ無いの全てのExcelブックを「C:\temp」フォルダにコピーします。このとき、同名のファイルがある場合は上書き保存します。なお、このサンプルを利用するには、「Windows Script Host Object Model」に参照設定します。
●サンプル●
Sub CopyFileSample()
Dim TempFileName As String
Dim TempFolderName As String
TempFileName = ThisWorkbook.Path & "\Sample\" & "*.xls"
TempFolderName = "C:\temp\"
With New FileSystemObject
.CopyFile TempFileName, TempFolderName, True
End With
MsgBox "ファイルのコピーが完了しました", vbInformation
End Sub