フォルダ内の空フォルダを一括で削除したい
マクロで指定したフォルダ内に、空フォルダが存在すれば、削除したい場合があります。
パーツ化してしまうことで簡単に処理させることが可能です。
パーツ化してしまうことで簡単に処理させることが可能です。
フォルダ内の空フォルダを一括で削除するサンプルコード
'■指定したフォルダ内に空フォルダが存在すれば削除する
Public Function Call_EmptyFolderDelete(sPath As String)
'■FileSystemObjectの宣言
Dim fso As Object: Set fso = CreateObject("Scripting.FileSystemObject")
Dim chkFolder As Object
For Each chkFolder In fso.GetFolder(sPath).SubFolders
'■chkFolder内のファイルが0 且つ chkFolderのサブフォルダ数が0だった場合は削除
If chkFolder.Files.Count = 0 And chkFolder.SubFolders.Count = 0 Then
chkFolder.Delete
End If
Next
End Function
実際の使い方
Public Sub sample()
'■C:\vbaに存在する空フォルダを削除する
Call_EmptyFolderDelete ("C:\vba")
End Sub
注意点
- パスが存在しなければエラー発生します。FolderExistsで事前確認可能です。
実行時エラー76「パスが見つかりません。」 - 再起処理は含まれません。=指定フォルダ以下のサブフォルダに空フォルダがあっても削除しません。
コメント