How to delete all hidden sheets in a workbook using VBA?

To delete all hidden sheets in an Excel workbook using VBA, you can create a macro that loops through each sheet, checks if it is hidden, and then deletes it. Here’s a step-by-step guide with example code:

Sub DeleteAllHiddenSheets()
    Dim ws As Worksheet
    Dim response As VbMsgBoxResult
    
    ' Confirm with the user
    response = MsgBox("Are you sure you want to delete all hidden sheets?", vbYesNo + vbQuestion, "Delete Hidden Sheets")
    
    If response = vbNo Then Exit Sub
    
    ' Loop through each sheet in the workbook
    For Each ws In ThisWorkbook.Worksheets
        ' Check if the sheet is hidden
        If ws.Visible = xlSheetHidden Then
            ' Delete the sheet
            Application.DisplayAlerts = False ' Turn off alerts to prevent confirmation dialog
            ws.Delete
            Application.DisplayAlerts = True ' Turn alerts back on
        End If
    Next ws
    
    MsgBox "All hidden sheets have been deleted.", vbInformation, "Process Complete"
End Sub
  • Open Excel and Access the VBA Editor:
    • Press `ALT` + `F11` to open the VBA Editor.
  • Insert a New Module:
    • In the VBA Editor, right-click on any of the items for your workbook in the “Project Explorer” window.
    • Select `Insert` -> `Module`. This will create a new module where you can write your VBA code.
  • Write the VBA Code:
    • Copy and paste the following VBA code into the module window:
  • Run the Macro:
    • Close the VBA Editor.
    • Press `ALT` + `F8` to open the Macro dialog box.
    • Select `DeleteAllHiddenSheets` from the list and click `Run`.

Important Notes:

  • Backup Your Data: Always make sure to back up your workbook before running any VBA script that deletes data or sheets.
  • Visibility Levels: The code checks for sheets that are `xlSheetHidden`, and it will not delete sheets that are `xlSheetVeryHidden`. If you also want to delete `xlSheetVeryHidden` sheets, modify the condition `If ws.Visible <> xlSheetVisible Then`.
  • Alert Messages: The `Application.DisplayAlerts` is set to `False` to automatically confirm the deletion of sheets without displaying dialog boxes. It is turned back on immediately after the deletion process to ensure Excel alerts function normally again.
  • Permission: If your workbook is protected, you may need to unprotect it before this macro can run successfully.

Unlock Your Potential

Excel

Basic - Advanced

Access

Access Basic - Advanced

Power BI

Power BI Basic - Advanced

Help us grow the project