即効テクニック

ファイル操作関連のテクニック

複数のファイルをコピーする

(Excel 2000/2002/2003)
●概要●
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