EXCEL、VBA

【VBA】ファイルを移動する

 

ファイルの存在チェックをする構文

ファイルの存在チェックをする構文は次のとおり。FileSystemObjectを使用します。

Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Call fso.moveFile("移動元ファイルパス", "移動先ファイルパス") 'ファイルパスはフルパス
Set fso = Nothing

 

 

ファイルを移動する関数

ファイルを移動する関数です。

移動先にファイルがあった場合に、「上書きする」か「しない」か制御できるようになっています。

引数 fromDir:移動元のファイルパス

引数 toDir:移動先のファイルパス

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

Public Function moveFile(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
            '存在&上書きフラグ=Falseの時:処理中断
            moveFile = False
            Exit Function
        Else
            '存在&上書きフラグ=Trueの時:ファイル削除
            Kill toDir
        End If
    End If
    
    '移動処理
    Call fso.moveFile(fromDir, toDir)
    Set fso = Nothing
    
    moveFile = True

End Function

 

実行例

Debug.Print moveFile("C:\test\testfile.txt", "C:\test2\testfile.txt")
' True