How to delete vba veryhidden sheets from excel files without opening the vba editor
- Step 1Load the workbook into the tool — Drop your
.xlsx(the picker accepts.xlsx,.xls,.ods). ExcelJS reads it into an ArrayBuffer locally. Requires the Developer tier. You do not need Excel, macros enabled, or the developer tab. - Step 2Run List only to enumerate VeryHidden sheets — Keep Mode on
List only (no changes). The report's third line,VeryHidden sheets (N): ..., names every sheet whosestateisveryHidden— exactly the ones Excel's Unhide dialog refuses to show you. - Step 3Confirm the names before deleting — VeryHidden sheets are often named like
_calc,wsData,xlfHelper, orSheet9. The names usually reveal their purpose. The tool does not show cell contents, so for anything ambiguous, inspect in Excel via VBA on a copy first. - Step 4Select Delete VeryHidden sheets — Choose
Delete VeryHidden sheetsto remove onlystate: veryHidden. Regular hidden sheets and visible sheets are preserved. (UseDelete all hidden + VeryHiddenonly if you also want the ordinary hidden sheets gone.) - Step 5Run and download — The tool calls
wb.removeWorksheet(ws.id)for each VeryHidden sheet, thenwb.xlsx.writeBuffer()to produce<original>-sheets-cleaned.xlsx. The result panel shows the deleted count. - Step 6Verify VeryHidden count is zero — Re-run
List onlyon the downloaded file. TheVeryHidden sheetsline should now read(0): none. Keep the original as a backup — deletion is permanent.
VeryHidden vs Hidden — how to reach each
Why VeryHidden normally needs VBA, and what this tool replaces.
| State | ExcelJS `ws.state` | Reveal from Excel UI? | Built-in reveal method | This tool |
|---|---|---|---|---|
| Hidden | hidden | Yes | Right-click tab → Unhide | Lists + can delete via Delete hidden sheets |
| VeryHidden | veryHidden | No | VBA: .Visible = xlSheetVisible, or Properties window | Lists + deletes via Delete VeryHidden sheets |
| VeryHidden (VBA locked) | veryHidden | No | Blocked — VBA project is password-protected | Still lists + deletes (reads OOXML, not VBA) |
Mode behaviour for VeryHidden cleanup
Which mode to pick depending on whether you want to keep ordinary hidden sheets.
| Goal | Mode to choose | Effect on VeryHidden | Effect on Hidden |
|---|---|---|---|
| Just see what is VeryHidden | List only (no changes) | Listed by name | Listed by name |
| Strip VBA-buried sheets only | Delete VeryHidden sheets | Deleted | Kept |
| Strip everything non-visible | Delete all hidden + VeryHidden | Deleted | Deleted |
| Keep VeryHidden, drop hidden | Delete hidden sheets | Kept | Deleted |
Cookbook
Real reports from workbooks that used VBA to bury sheets. Names reflect typical VBA-author conventions.
List only reveals a VeryHidden sheet Excel hides
The Unhide dialog in Excel would show only Config here. This tool exposes the VeryHidden _engine too.
Mode: List only (no changes) Visible sheets (2): Report, Charts Hidden sheets (1): Config VeryHidden sheets (1): _engine (Excel's Unhide dialog would list only 'Config')
Delete VeryHidden, keep the hidden config sheet
Visible formulas still read from Config, so you keep it and remove only the VBA-buried _engine.
Before: Hidden (1): Config VeryHidden (1): _engine Mode: Delete VeryHidden sheets After: Hidden (1): Config VeryHidden (0): none Download: model-sheets-cleaned.xlsx
VBA project is password-protected — still works
The author locked the VBA project so you cannot open the editor. This tool never touches VBA; it reads the worksheet state from the OOXML directly.
Excel: Alt+F11 -> 'VBAProject is protected' (locked) This tool, Mode: List only -> VeryHidden sheets (2): wsLogic, wsRates Mode: Delete VeryHidden sheets -> both removed, download produced. The VBA password was never needed.
The VBA you would otherwise have to write
For context, this is the manual route the tool replaces. You would write and run this in the VBA editor for every VeryHidden sheet, assuming the project is not locked.
' Manual VBA reveal (what you avoid):
Sub RevealVeryHidden()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Visible = xlSheetVeryHidden Then
ws.Visible = xlSheetVisible
End If
Next ws
End Sub
' Then manually delete each. The tool does both in one click.Verifying a file is free of VeryHidden sheets
Run List only on the cleaned download to confirm the VeryHidden group is empty before you hand the file off.
Mode: List only (no changes) Visible sheets (2): Report, Charts Hidden sheets (1): Config VeryHidden sheets (0): none -> no VBA-buried sheets remain
Edge cases and what actually happens
VBA project is password-protected
SupportedBecause the tool reads the worksheet state from the OOXML package and never opens the VBA project, a password-protected VBA project does not block it. You can list and delete VeryHidden sheets even when Alt+F11 reports the project is locked.
Saving as .xlsx drops the macro project
Macros removedThe output is always written as a standard .xlsx via wb.xlsx.writeBuffer(). If the input was a .xlsm, the resulting .xlsx will not carry the VBA project — saving to the macro-free format strips macros entirely. If you need to keep macros while removing VeryHidden sheets, do the deletion in Excel/VBA instead.
A VeryHidden sheet feeds a visible formula
Formula error (#REF!)VeryHidden 'engine' sheets sometimes hold lookup ranges that visible formulas reference. Deleting them turns those references into #REF!. The tool does not analyse cross-sheet references. Flatten dependents with Formula to Value before deleting if you suspect this.
Deletion is permanent
By designRemoved VeryHidden sheets are not stored in the output workbook and cannot be recovered from it. Keep the original .xlsm/.xlsx as a backup before running Delete VeryHidden sheets.
List only returns a report, not a file
ExpectedList only produces a text report and no download — that is intentional so you can audit VeryHidden sheets without changing the file. Switch to a delete mode to get a cleaned download.
Tool is gated to Developer tier
403 Developer requiredThe processor throws Hidden Sheet Destroyer requires Developer tier. before reading the file on Free/Pro/Pro-media accounts. VeryHidden removal is a Developer-only capability here.
Macro code references a deleted sheet by codename
Runtime riskIf you keep macros (by deleting in Excel rather than via this tool) and remove a VeryHidden sheet that VBA references by codename, the macro will raise a runtime error when it runs. This tool's .xlsx output sidesteps that by dropping the macro project, but be aware of the dependency if you take the manual route.
Corrupt or encrypted workbook
Parse errorExcelJS needs a valid, unencrypted OOXML package. A password-to-open (encrypted) workbook or a corrupt file fails to load. Decrypt/repair first — this tool removes VeryHidden sheets, it does not decrypt files.
Frequently asked questions
What is an xlSheetVeryHidden sheet?
It is a worksheet whose Visible property is set to xlSheetVeryHidden (value 2) via VBA. Unlike a normal hidden sheet, it does not appear in Excel's right-click Unhide list, so you cannot reveal it from the standard UI — only by writing VBA or by reading the file structure directly, which is what this tool does.
Can I remove VeryHidden sheets without opening the VBA editor?
Yes. That is the entire point of this tool. It loads the workbook with ExcelJS, lists VeryHidden sheets in List only mode, and deletes them with Delete VeryHidden sheets — no Visual Basic Editor, no developer tab, no macros enabled.
Does it work if the VBA project is password-protected?
Yes. The tool reads the worksheet visibility state from the OOXML package, not through the VBA environment, so a locked VBA project does not stop it from listing or deleting VeryHidden sheets.
Will it touch my regular hidden sheets?
Only if you ask it to. Delete VeryHidden sheets removes exclusively state: veryHidden. Regular hidden sheets and visible sheets are preserved. Choose Delete all hidden + VeryHidden if you want both groups gone.
Will it remove my macros too?
The output is written as a standard .xlsx, which does not carry a VBA project — so if you started from .xlsm, the macro code is dropped in the result. If you need to delete VeryHidden sheets while keeping macros, do it inside Excel/VBA instead, or use the VBA Macro Stripper (/excel-tools/excel-vba-macro-stripper) deliberately as a separate step.
Can a deleted VeryHidden sheet be recovered?
No. It is not stored in the output file. Keep your original workbook as a backup before running any delete mode.
How do I see the VeryHidden sheets without changing the file?
Run List only (no changes). The report's VeryHidden sheets (N): ... line names every one. No download is produced and the file is untouched.
Does this preview what is inside each VeryHidden sheet?
No — it reports sheet names and counts, not cell contents. For ambiguous names, reveal the sheet via VBA on a copy in Excel (if the project is not locked) or inspect after deletion is decided. The tool's job is enumeration and removal, not content preview.
Is the file uploaded to a server?
No. Everything runs in your browser via ExcelJS. The workbook is read into memory locally and never transmitted.
Why do I need Developer tier?
This tool is gated to Developer. The processor refuses to run on lower tiers with Hidden Sheet Destroyer requires Developer tier.. The Developer tier also gives the Excel family a 500 MB file cap and no row limit.
What is the output file named?
On a delete mode the download is <original-name>-sheets-cleaned.xlsx, a standard .xlsx with the VeryHidden (and any other selected) sheets removed.
Can I script VeryHidden removal across many files?
Yes — fetch the schema from GET /api/v1/tools/excel-hidden-sheet-destroyer, pair the @jadapps/runner, and POST each file with { "mode": "delete-very-hidden" } to http://127.0.0.1:9789/v1/tools/excel-hidden-sheet-destroyer/run. The runner processes files locally.
Privacy first
Every JAD Excel tool runs entirely in your browser using SheetJS and ExcelJS. Your spreadsheets, formulas, and data never leave your device — verified by zero outbound network requests during processing.