ファイルの移動

ファイルの移動する処理を関数化。
ファイルが開いている場合にはエラーが発生するため、エラー処理も行っています。
送信先のファイル名を変更することができます。

' ------------------------------------------------------------
' 説明:ファイルの移動
' 引数:1:移動元のファイル名
'       2:移動先のファイル名
' 備考:既にファイルがある場合は確認ダイアログが表示されます
'       エラーが発生した場合は、エラーの詳細情報が表示されます
' ------------------------------------------------------------
Sub FileMoveOwConfirm(SourceFilename, DestinationFilename)
    Dim fso As Scripting.FileSystemObject
    
    ' オブジェクトを作成
    Set fso = New Scripting.FileSystemObject
    
    ' エラー発生時の処理
    On Error GoTo ErrorProc
    
    ' コピー元のファイルが無い場合 → 終了
    If fso.FileExists(SourceFilename) = False Then
        MsgBox "コピー元のファイルが存在しません。", vbExclamation, "FileCopyOwConfirm"
        Set fso = Nothing
        Exit Sub
    End If
    
    ' コピー先にファイルが有る場合 → 終了
    If fso.FileExists(DestinationFilename) = True Then
        MsgBox "コピー先に同名のファイルが存在します。", vbExclamation, "FileMoveOwConfirm"
        Set fso = Nothing
        Exit Sub
    End If
    
    ' ファイルの移動処理
    fso.MoveFile SourceFilename, DestinationFilename
    Set fso = Nothing
    Exit Sub

' エラー処理
ErrorProc:
    MsgBox "エラーが発生しました。 (" & Err.Number & ")" & vbCrLf & "内容: " & Err.Description, vbExclamation, "FileMoveOwConfirm"
    Set fso = Nothing
End Sub

【補足】

Scripting.FileSystemObject を使用しています。
初期設定では、エラーが発生するので、参照設定「Microsoft Scripting Runtime」の設定が必要です。

コメント