フォルダの移動

フォルダを移動させる。

FileSystemObjectのMoveFolderメソッドを利用してフォルダを移動させることができます。

MoveFolderには下記の引数が設定できます。

引数名説明省略
第1引数source移動元のフォルダパスを指定不可
第2引数destination移動先のフォルダパスを指定不可

移動させる時にフォルダの名前を変更して移動させることも可能です、その場合は第2引数の末尾に”\”を付けない形で指定します。
名前を変更しないで移動させる場合は第2引数の末尾に”\”が必要になります。

またワイルドカードを使用して複数のフォルダをまとめて移動させることもできます。

 ●同じフォルダ名で移動

'******************************************************************
' フォルダの移動(同じフォルダ名)
'******************************************************************
Sub Main_MoveFolder_SameName()
    
    '移動元の指定
    Dim sFolderSrc As String
    sFolderSrc = "C:\VBA\FSO\移動元"

    '移動先の指定、第2引数の末尾に”\”が必要
    Dim sFolderDst As String
    sFolderDst = "C:\VBA\FSO\移動先\"

    'FileSystemObjectの作成
    Dim oFso As Object
    Set oFso = CreateObject("Scripting.FileSystemObject")
    
    'フォルダの移動
    Call oFso.MoveFolder(sFolderSrc, sFolderDst)

End Sub

 ●フォルダ名を変更して移動

'******************************************************************
' フォルダの移動(別名に変更して移動)
'******************************************************************
Sub Main_MoveFolder_ChangeName()
    
    '移動元の指定
    Dim sFolderSrc As String
    sFolderSrc = "C:\VBA\FSO\移動元"

    '移動先(変更後のフォルダ名)の指定、第2引数の末尾に”\”は不要
    Dim sFolderDst As String
    sFolderDst = "C:\VBA\FSO\移動先\フォルダ名変更"

    'FileSystemObjectの作成
    Dim oFso As Object
    Set oFso = CreateObject("Scripting.FileSystemObject")
    
    'フォルダの移動+名前変更
    Call oFso.MoveFolder(sFolderSrc, sFolderDst)

End Sub

 ●フォルダの移動(複数のフォルダをまとめて移動)


'******************************************************************
' フォルダの移動(まとめて移動)
'******************************************************************
Sub Main_MoveFolder_ALL()

    
    '移動元の指定(ワイルドカード使用)
    Dim sFolderSrc As String
    sFolderSrc = "C:\VBA\FSO\移動元*"

    '移動先の指定
    Dim sFolderDst As String
    sFolderDst = "C:\VBA\FSO\移動先\"

    'FileSystemObjectの作成
    Dim oFso As Object
    Set oFso = CreateObject("Scripting.FileSystemObject")
    
    'フォルダの移動+名前変更
    Call oFso.MoveFolder(sFolderSrc, sFolderDst)

End Sub