ExcelAnalyzerClient-side file inspector

Find very hidden sheets and the VBA that hides them

A hidden sheet can be unhidden from the sheet tab. A very hidden sheet cannot. It is still in the workbook, it can still calculate, and it is usually revealed by setting the sheet’s Visible property. The visibility checker lists every sheet’s state from the file so you can see those tabs before you decide the workbook only contains what the ribbon shows.

The three states

workbook.xml, or workbook.bin in an .xlsb file, stores each sheet as visible, hidden, or veryHidden. Visible is a tab. Hidden is a tab you can restore with a right-click and Unhide. Very hidden is absent from that dialog. In the VBA editor the same states are xlSheetVisible, xlSheetHidden, and xlSheetVeryHidden. People use the third state for parameter sheets and mapping tables they do not want edited. The state is also easy to miss when you are reviewing a file from someone else. The checker’s job is to make the list complete. It does not change the file.

Compare the list with what you were told

If the email said “the workbook has the summary and the data tab,” and the list shows six sheets, you have four sheets to ask about. Some may be ordinary hidden sheets a model always has. Some may be very hidden. Open the ones you are allowed to open, on a copy, with macros disabled. A very hidden sheet can hold a pivot cache source, a price list, or an old extract. It can also hold nothing you want to circulate. Knowing the name is the step before either conclusion.

How to show a very hidden sheet

On a copy, with macros still disabled, you can set the sheet visible if your process allows the VBA editor. Alt+F11, find the sheet in the Project window, and set Visible to xlSheetVisible in the Properties window. The editor showing the sheet does not require you to run the project’s code. If policy forbids the editor, ask the author for a copy with the sheet visible, or use a separate trusted workbook whose only job is to set that property. Do not enable content on the untrusted file to unhide a sheet. That is how an auto-start macro gets the run it was waiting for.

Do not delete it on sight

Formulas, charts, and pivots may point at the hidden sheet. Deleting it turns those references into #REF!. Read the sheet first. If it is an obsolete extract, note what points at it, retarget those formulas, and only then delete it. If it is a parameter sheet, leave it and decide whether very hidden is still the right state. Ordinary hidden is enough when you merely want to reduce clutter and you want Unhide to work. Very hidden is reasonable for a sheet that users must not edit and that your process documents.

When you want the numbers from your own workbook, check hidden states locally.

Macros that hide the sheet again

A Workbook_Open procedure can set Visible back to very hidden every time the file opens. Unhiding the sheet and saving will not stick if you then enable macros. The macro inventory lists auto-start names. If Workbook_Open is present, read that procedure before you trust the new visibility. This site does not decompile the procedure. It tells you the name is there so you know to look, with macros disabled, in the editor. A file with no VBA project will not hide the sheet again by itself. A very hidden sheet in a file with no macros was hidden by a person or by a macro that has since been removed.

.xlsb and damaged packages

Visibility is one of the checks that does run on .xlsb, because sheet records in workbook.bin include the state. If the package is damaged and the workbook part cannot be parsed, the sheet list may be empty and the integrity check will say why. An empty list plus an integrity error means “could not read,” not “this file has no sheets.” Repair the package, or obtain a new copy, before you draw a conclusion about hidden content.

Review the sheet, not the rumor

Once a very hidden sheet is visible on a copy, read it the way you would read any other tab. Look at the used range, because a hidden extract is a common phantom-range offender and nobody notices until the file is huge. Look for errors and for links. A hidden sheet full of #REF! is still part of the workbook’s error count. Look at whether a pivot on a visible sheet uses it as a source. Then decide: leave it very hidden and document it, make it ordinarily hidden so Unhide works, or retarget dependents and delete it. Undocumented very hidden sheets are how a file becomes folklore. A one-line note in the cover sheet, “Rates is very hidden and holds the price table,” is enough for the next reviewer to expect the visibility checker’s extra row.

Macros disabled, on purpose

Do this review with macros disabled even if you think the file is friendly. Enabling content to unhide a sheet runs Workbook_Open if it exists, which may hide the sheet again or do something you have not read. The inventory tells you whether that procedure name is present before you choose. If it is present and you cannot read VBA, stop at the list and ask the author to unhide the sheet for you. Curiosity is not a reason to enable a project. Write down the sheet names first. A conversation that starts with those names is specific. A conversation that starts with “something seems hidden” is easy to dismiss, and the sheet stays very hidden for the next person too. If the author confirms the sheet is a parameter table, leave the state as it is and add the one-line note on the cover. The checker’s job is finished when the list matches what the workbook is supposed to contain, not when every sheet is visible. Save the copy you reviewed under a new name so the original very-hidden state is still there if the author needs it. Put the sheet names from the checker in that file’s cover note, including the ones you left very hidden, so the next review starts from a list instead of a rumor. The original file stays unchanged until the author agrees that the sheet list is the one the workbook is supposed to contain, including every very hidden tab.

Related reading

The closest repair notes are Is the XLSM safe to open? and When Break Links does nothing .

Walk the same checks in order with the Workbook audit checklist.

The terms behind this guide are Very hidden sheet and vbaProject.bin .

The paired check for that note is the Check XLSM macros without opening them.

Questions people ask before trusting the result

Can a very hidden sheet hold a macro?

Macros live in the VBA project, not on a sheet. A sheet can hold data a macro uses. Check visibility and the VBA inventory as two reports.

Will Unhide ever show xlSheetVeryHidden?

No. The Unhide dialog lists ordinary hidden sheets only. Very hidden sheets need the property changed.

Do hidden sheets calculate?

Yes. Hiding a sheet does not remove it from calculation. A slow hidden sheet is still a slow sheet.

Can I unhide it on this website?

No. The page reads state and stops. Change the property in Excel on a copy you control.

What if the sheet name is a warning by itself?

Read it. A name is not evidence. A sheet you were not told about is a reason to ask. The list is how you know to ask.