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

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

ワイルドカードを使用できる
 ・FileSystemObjectCopyFileメソッド
を使用します!

PR

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

コピーするファイルの指定で「C:\Users\user\Desktop\*.csv」というように
「*(アスタリスク)」を使用することで、複数のファイルをコピー対象にできます。

PR

実行結果

複数のファイルをコピーできました。

実行結果
実行結果
PR

備考(FileSystemObjectのCopyFileメソッドの第3引数について)

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

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

'ファイルをコピー
Call fso.CopyFile(targetFiles, folder, False)
エラーメッセージ
エラーメッセージ
PR

参考①

上記のVBAコードで使用した以下の詳細については、公式サイトをご確認ください。

●「FileSystemObject」の「CopyFile」メソッド

PR

参考②

以下の記事で
 ・複数のフォルダをコピーする方法
を紹介しています。

タイトルとURLをコピーしました