構文
Object.MoveFolderSource, Destination
Source・・・・移動するフォルダパスを指定 移動するフォルダ名はワイルドカード指定可能。
Destination・・移動先のパスとフォルダ名を指定
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のように子フォルダには移動できません。※パスが存在しない為
- ワイルドカードで指定する場合、フォルダ名は移動元のまま移動します。



コメント