FileSystemObject

フォルダ内、空フォルダを削除する【DeleteFolder】【FSO】【ExcelVBA】

フォルダ内の空フォルダを一括で削除したい

マクロで指定したフォルダ内に、空フォルダが存在すれば、削除したい場合があります。
パーツ化してしまうことで簡単に処理させることが可能です。

フォルダ内の空フォルダを一括で削除するサンプルコード

'■指定したフォルダ内に空フォルダが存在すれば削除する
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「パスが見つかりません。」
  • 再起処理は含まれません。=指定フォルダ以下のサブフォルダに空フォルダがあっても削除しません。

関連記事

コメント

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