【VBA】ワイルドカードを使用して、複数のファイルをコピーする

この記事では
 ・複数のファイルをコピーする方法
を記載します!

ワイルドカードを使用できる
 ・FileSystemObjectのCopyFile
を使用します!

VBAコード

ここでは例として、
 ・デスクトップ配下のある全てのcsvファイルを
 ・フォルダ「test」へ
コピーします。

Option Explicit

Sub sample()
    
    Dim fso As Object
    Dim targetFiles As String
    Dim folder As String
    
    'コピーするファイルを指定
    targetFiles = "C:\Users\user\Desktop\*.csv"
    
    'コピー先のフォルダを指定
    folder = "C:\Users\user\Desktop\test"
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    'ファイルをコピー
    Call fso.CopyFile(targetFiles, folder)
    
    '後片付け
    Set fso = Nothing
    
End Sub

実行結果

全てのcsvファイルをコピーすることが出来ました。

備考(FileSystemObjectのCopyFileの第3引数について)

●第3引数を省略(=True)した場合
コピー先に同名ファイルが存在すると、強制的に上書きされます。

●第3引数にFalseを指定した場合
コピー先に同名ファイルが存在すると、エラーとなります。

'ファイルをコピー
Call fso.CopyFile(targetFiles, folder, False)
タイトルとURLをコピーしました