VBATips

フォルダをゴミ箱に移動する【Namespace(10)】【ExcelVBA】

フォルダをRmDir(完全削除)ではなく、ゴミ箱へ移動したい

VBAマクロを実行する際、RmDirステートメントを利用して、フォルダを削除する場合があります。
RmDirステートメントを使用した場合は、ゴミ箱に移動する削除ではなく、完全削除です。
元に戻すことはできません。

その為、実装するマクロによっては、ゴミ箱に移動して削除する処理も必要です。

フォルダをゴミ箱に移動するサンプルコード

Shell.Application でゴミ箱(Namespace(10))へ削除(移動MoveHere)します。

'■指定フォルダをゴミ箱へ削除(移動)する
Public Sub Call_MoveDustboxFolder(sPath As String)
    CreateObject("Shell.Application").Namespace(10).MoveHere (sPath)
    Application.Wait Now + TimeValue("0:00:01")
End Sub

使い方

Public Sub sample()
    Call Call_MoveDustboxFolder("C:\vba")
End Sub

注意点

  • Application.Waitで待ち時間が必要です。
  • フォルダではなく、指定ファイルを削除する場合はこちら

関連記事

コメント

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