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

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

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

PR

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

「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

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

エラーメッセージ
エラーメッセージ
PR

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

「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
PR

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

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

PR

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

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

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


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

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

PR

参考

「FileSystemObject」の「CopyFile」メソッドの詳細については、公式サイトをご確認ください。

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