FileSystemObject

ファイルを移動する【MoveFileメソッド】【FileSystemObject】【ExcelVBA】

構文

Object.MoveFileSource, Destination 

Source・・・・移動するファイルのフルパスを指定 ファイル名はワイルドカード指定可能。
Destination・・移動先のパスとファイル名を指定
Sourceで指定したファイルをDestinationに指定したファイルに移動します。

MoveFileメソッドのサンプルコード

Public Sub sample()

    '■FileSystemObjectの宣言
    Dim fso As Object: Set fso = CreateObject("Scripting.FileSystemObject")
    
    '■"C:\vba\Book1.xlsx"を"C:\vba\sub\Book1.xlsx"に移動
    fso.MoveFile "C:\vba\Book1.xlsx", "C:\vba\sub\Book1.xlsx"
    
    '■"C:\vba\Book1.xlsx"を"C:\vba\sub\Book2.xlsx"に名前変更して移動
    fso.MoveFile "C:\vba\Book1.xlsx", "C:\vba\sub\Book2.xlsx"
    
    '■xlsx等のエクセルファイルだけでなく、他ファイルも同様に移動可能
    fso.MoveFile "C:\vba\word1_20220318.doc", "C:\vba\word1_20220317.doc"
    
    '■"C:\vba内の全てのxlsxファイルを"C:\vba\sub\"に移動(名前は移動元同様)
    fso.MoveFile "C:\vba\*.xlsx", "C:\vba\sub\"
    
End Sub

注意点

  • パスが存在しなければエラー発生します。FolderExistsで事前確認必要です。
    実行時エラー76「パスが見つかりません。」
  • 移動先に同名のファイルが存在すればエラー発生します。FilerExistsで事前確認必要です。
    実行時エラー58「既に同名のファイルが存在しています。」
  • 移動元と移動先のフォルダが同一で、ファイル名だけが異なる場合は、ファイル名の変更になります。
  • 移動先をフォルダパスで指定する場合、ファイル名は移動元のまま移動します。

関連記事

コメント

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