← コード一覧へ戻る
実務フォルダー

フォルダを削除する

中身が空のフォルダー1つだけを、確認して削除します。

実行前に確認

  • Windows専用の例です。C:\Dataは例なので、自分で用意した練習用フォルダーの絶対パスに変更してください。
  • RmDirはごみ箱へ移しません。中身を再帰的に削除するコードへ安易に変えないでください。

1サンプルコード

Sub Example4012()
    On Error GoTo Failed
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    Dim folderPath As String, folder As Object
    folderPath = "C:\Data\削除対象"
    If Not fso.FolderExists(folderPath) Then Err.Raise 76, , "フォルダーがありません"
    Set folder = fso.GetFolder(folderPath)
    If folder.Files.Count > 0 Or folder.SubFolders.Count > 0 Then
        MsgBox "中身があるため削除しません"
        Exit Sub
    End If
    If MsgBox(folderPath & vbCrLf & "この空フォルダーを削除しますか?", _
        vbYesNo + vbExclamation + vbDefaultButton2) <> vbYes Then Exit Sub
    RmDir folderPath
    MsgBox "削除しました"
    Exit Sub
Failed:
    MsgBox "処理を中止しました: " & Err.Description
End Sub

図で見るファイルの変化

イメージ図

コードの動きを表した概念図です。実際のExcel画面ではありません。

  1. 削除前:空フォルダー

    C:\Data\ 削除対象\(中身なし)

  2. マクロ:中身を確認

    ファイル数・子フォルダー数がともに0か調べる

  3. 手動:削除を確認

    パスを読み、削除してよい場合だけ[はい]

  4. マクロ:RmDirで削除

    C:\Data\削除対象 を削除する

  5. 削除後:対象がなくなる

    C:\Data\ は残る 「削除対象」フォルダーはない

中身がある、存在しない、[いいえ]なら削除しません。RmDirはごみ箱へ移さない削除です。

コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。

使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
  1. 1

    Windows版のデスクトップExcelで練習用ブックを.xlsm形式で保存します。Alt+F11→[挿入]→[標準モジュール]に、この例だけを貼り付けます。

  2. 2

    練習用の空フォルダーを作り、folderPathをその絶対パスへ変更します。

  3. 3

    実行するSubの内側にカーソルを置き、F5キーを押します。 確認画面が出たら対象パスを読み、削除してよい場合だけ[はい]を押します。

  4. 4

    [はい]なら空フォルダーが削除されます。ファイルや子フォルダーが入っていれば中止します。[いいえ]なら変更されません。

使っている機能の公式ドキュメント(Microsoft Learn)