EXCEL、VBA

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

 

ファイルをコピーする構文

ファイルをコピーする構文は次のとおり。

なお、コピー先にすでにファイルがあった場合、上書きするのでご注意下さい。

'ファイルをコピーする ※ファイルパスはフルパス
FileCopy コピー元のファイルパス, コピー先のファイルパス

'例
FileCopy "C:\test\Book1.xlsx", "C:\test\Book2.xlsx"

 

 

上の構文を使用した関数

上の構文ファイルコピーをする関数です。

コピー先にファイルがあった場合に、「上書きする」か「しない」かを制御できます。

引数 fromDir:コピー元のファイルパス

引数 toDir:コピー先のファイルパス

引数 overWriteFlg:上書きするかのフラグ(True:上書き、False:上書きしない)。設定しない場合、上書きしない。

Public Function copyFile(ByVal fromDir As String, ByVal toDir As String, Optional ByVal overWriteFlg As Boolean = False) As Boolean

    Dim fso As Object
    
    'ファイル存在確認
    Set fso = CreateObject("Scripting.FileSystemObject")
    If fso.FileExists(toDir) = True Then
        If overWriteFlg = False Then
            copyFile = False
            Exit Function
        End If
    End If
    Set fso = Nothing
    
    'ファイルコピー
    FileCopy fromDir, toDir
    copyFile = True

End Function

 

実行例

Debug.Print copyFile("C:\test\testfile.txt", "C:\test\testfile2.txt", True)
' True

Debug.Print copyFile("C:\test\testfile.txt", "C:\test\testfile2.txt")
' False