【VBA】ファイルをコピーする

ファイルをコピーする方法は複数あります!

ここでは私が可読性が良いと考える方法を
記載します!

ファイル名を変更せずにコピーする

「FileSystemObject」の「CopyFile」の
 ・第1引数に「コピーするファイルのパス」
 ・第2引数に「コピー先のフォルダのパス」
を指定することで、ファイル名を変更せずにコピーすることが出来ます。

Option Explicit

Sub sample()
    
    Dim fso As Object
    Dim fileFullPath As String
    Dim folderPath As String
    
    'コピーするファイルのパスを指定
    fileFullPath = "C:\Users\user\Desktop\aiueo.txt"
    
    'コピー先のフォルダのパスを指定
    folderPath = "C:\Users\user\Desktop\folder_001\"
    
    Set fso = CreateObject("Scripting.FileSystemObject")

    'ファイルを変更せずにコピーする
    Call fso.CopyFile(fileFullPath, folderPath)
    
    '後片付け
    Set fso = Nothing
    
End Sub

「コピー先のフォルダ」には最後に「\」を付けないといけません。
付け忘れると以下のエラーとなります。

ファイル名を変更してコピーする

「FileSystemObject」の「CopyFile」の
 ・第1引数に「コピーするファイルのパス」
 ・第2引数に「コピー後のファイルのパス」
を指定することで、ファイル名を変更してコピーすることが出来ます。

Option Explicit

Sub sample()
    
    Dim fso As Object
    Dim fileFullPath As String
    Dim copyFileFullPath As String
    
    'コピーするファイルのパスを指定
    fileFullPath = "C:\Users\user\Desktop\aiueo.txt"
    
    'コピー後のファイルのパスを指定
    copyFileFullPath = "C:\Users\user\Desktop\folder_001\copyfile.txt"
    
    Set fso = CreateObject("Scripting.FileSystemObject")

    'ファイル名を変更してコピーする
    Call fso.CopyFile(fileFullPath, copyFileFullPath)
    
    '後片付け
    Set fso = Nothing
    
End Sub

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

ワイルドカードを使用することで、複数のファイルを1度にコピーすることが出来ます。
詳細は以下の記事を参照してください。

ファイルをコピーする前に実施しておきたいこと

コピー後のファイルが既に存在している場合、コピーは不要で場合もあると思います。

その場合は、コピー後のファイルの存在有無を確認してからコピーしましょう。
詳細は以下の記事を参照してください。


コピー後のファイルが既に存在している場合、削除してからコピーすべき場合もあると思います。

その場合は、コピー後のファイルを削除してからコピーしましょう。
詳細は以下の記事を参照してください。

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