【VBA】フォルダを移動する

VBAで
 ・フォルダを移動
できます!

移動時にエラーが発生しないように、
気を付けるべき点も記載します!

PR

VBAコード

ここでは例として、
 ・デスクトップ配下のフォルダ「folder01」を移動
させます。

Option Explicit

Sub sample()
    
    Dim fso As Object
    Dim folderFullPath As String
    Dim newFolderFullPath As String
    
    '移動させるフォルダのパスを指定
    folderFullPath = "C:\Users\user\Desktop\folder01"
    
    '移動先のフォルダパスを指定
    newFolderFullPath = "C:\Users\user\Desktop\temp\"
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    'フォルダを移動
    Call fso.MoveFolder(Source:=folderFullPath, _
                        Destination:=newFolderFullPath)
    
    '後片付け
    Set fso = Nothing
    
End Sub

「移動させるフォルダのパス」を設定します(10行目)。

「移動先のフォルダのパス」を設定します(13行目)。

「FileSystemObject」の「MoveFolder」メソッドにより、フォルダを移動します。以下の引数を指定します(18~19行目)。

引数「Source」  :移動させるフォルダのパス
引数「Destination」:移動先のフォルダパス

「移動先のフォルダパス」は最後に「\」を付けてください。
付け忘れると以下のエラーとなります。

エラーメッセージ
エラーメッセージ

※エラーメッセージからエラー理由(\の付け忘れ)を推測することは難しいです。付け忘れに気を付けましょう。

PR

実行結果

フォルダを移動できました。

実行結果
実行結果
PR

参考①

移動先のフォルダが既に存在している状態で移動を実行すると、以下のエラーが発生します。

エラーメッセージ
エラーメッセージ

※エラーメッセージには「同名のファイルが存在している」とありますが、本当のエラー理由は「同名のフォルダが存在しているから」です。

エラーが発生しないように、移動させる前に移動先のフォルダの存在有無を確認しましょう。


フォルダが既に存在している場合は、削除しておきましょう。

PR

参考②

フォルダ名を変更することもできます。

詳細は以下の記事をご確認ください。

PR

参考③

フォルダでなく、ファイルを移動する方法は以下を参照してください。

PR

参考④

「FileSystemObject」の「MoveFolder」メソッドの詳細は、公式サイトをご確認ください。

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