
VBAで
・空フォルダを一括で削除
できます!
※サブフォルダ配下の空フォルダも一括で削除できます。
VBAコード
可読性や保守性を良くするために、処理を以下の2つに分けて作成します。
呼び出し関係は以下です。

ここでは例として
・フォルダ「C:\Users\user\Desktop\test」配下の
・空フォルダを一括で削除
します。
※サブフォルダ配下の空フォルダも削除します。
※削除した空フォルダのパスをイミディエイトウインドウへ出力します。



Option Explicit
'Windows PathIsDirectoryEmpty
Declare PtrSafe Function PathIsDirectoryEmpty Lib "SHLWAPI.DLL" Alias "PathIsDirectoryEmptyA" (ByVal pszPath As String) As Boolean
'**********************************************************
'メイン処理
'**********************************************************
Sub main()
Dim inputFolder As String
Dim fso As Object
Dim folder As Object
'対象フォルダの指定
inputFolder = "C:\Users\user\Desktop\test"
Set fso = CreateObject("Scripting.FileSystemObject")
'サブフォルダの数だけ空フォルダ削除処理を実行
For Each folder In fso.GetFolder(inputFolder).SubFolders
Call deleteEmptyFolders(inputFolder, fso)
Next
MsgBox "空フォルダを削除しました。"
'後片付け
Set fso = Nothing
End Sub
'**********************************************************
'空フォルダ削除処理
'**********************************************************
Private Function deleteEmptyFolders(ByVal inputFolder As String, ByVal fso As Object)
Dim folder As Object
Dim file As Object
Dim folderCount As Long
Dim fileCount As Long
'サブフォルダの数だけ自身を再帰呼び出し
For Each folder In fso.GetFolder(inputFolder).SubFolders
Call deleteEmptyFolders(folder.Path, fso)
Next
'空フォルダを削除
If PathIsDirectoryEmpty(inputFolder) = 1 Then
fso.DeleteFolder (inputFolder)
Debug.Print inputFolder & "を削除しました。"
End If
End Function
実行結果
空フォルダを一括で削除できました。
※サブフォルダ配下の空フォルダも削除できました。




参考
上記のVBAコードは以下の記事を参考にして作成しました。
詳細は以下の記事をご確認ください。