FileSystemObject

フォルダを移動する【MoveFolderメソッド】【FileSystemObject】【ExcelVBA】

構文

Object.MoveFolderSource, Destination 

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

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

Public Sub sample()

    '■FileSystemObjectの宣言
    Dim fso As Object: Set fso = CreateObject("Scripting.FileSystemObject")
    
    '■"C:\vba"を"C:\sample\vba"に移動※区切り文字でフォルダ名は固定となる
    fso.MoveFolder "C:\vba", "C:\sample\"
    
    '■"C:\vba1"を"C:\vba2"に名前を変更して移動
    fso.MoveFolder "C:\vba1", "C:\vba2"
        
    '■"C:\vbaを含むフォルダを"C:\sample\"に移動(フォルダ名は移動元同様)
    fso.MoveFolder "C:\vba*", "C:\sample"
    
End Sub

注意点

  • パスが存在しなければエラー発生します。FolderExistsで事前確認必要です。
    実行時エラー76「パスが見つかりません。」
  • 移動先に同名のフォルダが存在すればエラー発生します。FolderExistsで事前確認必要です。
    実行時エラー58「既に同名のファイルが存在しています。」
  • C:\vba1→ C:\vba1\subのように子フォルダには移動できません。※パスが存在しない為
  • ワイルドカードで指定する場合、フォルダ名は移動元のまま移動します。

関連記事

コメント

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