Excel’s standard Hide command is convenient, but it does not prevent users from bringing a worksheet back through the normal Unhide option. When a workbook contains setup sheets, helper calculations, lookup tables, or administrative tabs, that level of hiding is often not enough.
VBA provides a stronger option by setting a worksheet’s visibility to xlSheetVeryHidden. A very hidden sheet does not appear in Excel’s Unhide dialog, so users cannot restore it through the standard interface; it must be made visible again through VBA or the Visual Basic Editor.
As an Amazon Associate I earn from qualifying purchases.
This approach is useful for controlling workbook layout and reducing accidental changes, especially when combined with workbook structure protection and a protected VBA project. It is not a replacement for true security, but it can make hidden worksheet tabs far harder for typical users to access.
Why Standard Hidden Tabs Are Not Enough
Excel’s standard worksheet hiding feature is convenient, but it is not designed to restrict access. When you right-click a sheet tab and choose Hide, Excel sets that worksheet’s visibility to the regular hidden state. The tab disappears from the bottom of the workbook, but the sheet remains easy to restore through the normal user interface.
#1 Best Overall
Any user with access to the workbook can usually bring the sheet back by right-clicking a visible sheet tab, selecting Unhide, choosing the hidden worksheet from the list, and clicking OK. The same result is available from the ribbon in many Excel versions through Home > Format > Hide & Unhide > Unhide Sheet. This means standard hidden tabs are useful for reducing clutter, but they are not suitable when you need to keep setup sheets, staging data, calculation sheets, or control lists out of casual reach.
The distinction matters because Excel supports more than one worksheet visibility state. A normally hidden worksheet uses the xlSheetHidden state. A worksheet hidden this way is intentionally recoverable by the user. A “very hidden” worksheet uses the xlSheetVeryHidden state, which removes it from the standard Unhide dialog entirely. Users cannot make a very hidden sheet visible by right-clicking tabs or using the ribbon; it must be restored through VBA or the Visual Basic Editor’s Properties window, assuming the user has access.
| Visibility state | Can users see the tab? | Can users unhide from Excel interface? | Typical use |
|---|---|---|---|
| Visible | Yes | Not applicable | Normal user-facing worksheets |
| Hidden / xlSheetHidden | No | Yes | Temporarily reducing workbook clutter |
| Very hidden / xlSheetVeryHidden | No | No | Helper sheets, lookup tables, configuration data, controlled templates |
For example, if a workbook contains a sheet named Rates that feeds formulas and data validation lists, hiding it with the standard command only keeps it out of sight until someone opens the Unhide dialog. If that sheet contains formulas users should not edit, named ranges that drive drop-downs, or imported data that supports reports, a normal hidden state does not provide much control. Setting the sheet to xlSheetVeryHidden makes it unavailable through those everyday menu paths.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Repair Windows errors before they cause bigger problems3Fix the driver behind crashes, sound loss and screen glitchesStandard hidden sheets also create a false sense of separation. Users may assume that hidden means protected, but hiding a tab does not lock cells, protect formulas, prevent copying, or stop users from changing workbook structure if protection is not applied. It simply changes whether the tab is displayed. For workbooks distributed to other users, this can lead to accidental edits when someone unhides a support sheet, changes a value, and breaks calculations elsewhere in the file.
Using VBA to set worksheets to xlSheetVeryHidden is therefore the better approach when the goal is to prevent manual unhiding from the Excel interface. It is not the same as encryption or true data security, but it is a practical workbook-design technique for keeping non-user-facing sheets hidden during normal use. In the next steps, the visibility state is controlled directly with VBA so specific sheets can be hidden more firmly than Excel’s built-in right-click command allows.
Using xlSheetVeryHidden to Prevent Manual Unhiding
Excel gives each worksheet a Visible property, and VBA can set that property to a state that is not available from the normal worksheet tab interface. When you right-click a sheet tab and choose Hide, Excel sets the sheet to xlSheetHidden. Users can reverse that by right-clicking any visible tab, choosing Unhide, and selecting the sheet. By contrast, xlSheetVeryHidden removes the sheet from the Unhide dialog entirely, so it cannot be restored through the standard Excel interface.
The practical difference is simple: a hidden sheet is hidden from view but still exposed to users as something they can unhide, while a very hidden sheet can only be made visible again by VBA or through the Visual Basic Editor by someone with access to the project. This makes xlSheetVeryHidden useful for helper sheets, configuration sheets, staging data, lookup tables, audit formulas, and other worksheets that should not appear as part of the user-facing workbook.
Recommended Free Tools
Worksheet visibility states
| VBA setting | Meaning | Can users unhide from Excel tabs? |
|---|---|---|
xlSheetVisible |
The worksheet is visible and its tab is shown. | Not applicable |
xlSheetHidden |
The worksheet is hidden, but listed in the Unhide dialog. | Yes |
xlSheetVeryHidden |
The worksheet is hidden and excluded from the Unhide dialog. | No |
To make a worksheet very hidden, set its Visible property in VBA. For example, the following macro hides a sheet named Settings so that users cannot bring it back using Format > Hide & Unhide > Unhide Sheet or the tab right-click menu:
Sub VeryHideSettingsSheet()
ThisWorkbook.Worksheets("Settings").Visible = xlSheetVeryHidden
End Sub
You can also apply the same setting directly in the Visual Basic Editor. Press Alt+F11, select the worksheet in the Project Explorer, open the Properties window, and change the Visible property to 2 – xlSheetVeryHidden. This is useful during development, but a macro is usually better for repeatable workbook setup, especially when sheets must be hidden automatically before distributing the file.
Before using this technique, make sure at least one worksheet remains visible. Excel does not allow every sheet in a workbook to be hidden, whether hidden normally or very hidden. A common pattern is to keep a user-facing sheet such as Dashboard, Menu, or Input visible, while setting supporting sheets to xlSheetVeryHidden. This keeps the workbook clean for users while still allowing formulas, validation lists, pivots, and macros to reference the concealed worksheets in the background.
VBA Code to Hide Specific Worksheet Tabs
To hide a specific worksheet so it cannot be unhidden from Excel’s standard Unhide dialog, set the sheet’s Visible property to xlSheetVeryHidden. This must be done with VBA because the Excel interface only supports the regular hidden state. Once a sheet is very hidden, users cannot right-click the sheet tabs and restore it manually.
The simplest macro targets one worksheet by name. In this example, the worksheet named Admin is hidden using xlSheetVeryHidden:
Sub HideAdminSheet()
ThisWorkbook.Worksheets("Admin").Visible = xlSheetVeryHidden
End Sub
Use ThisWorkbook when the macro should affect the workbook that contains the VBA code. This is usually safer than ActiveWorkbook, especially if users may have mulle workbooks open. If you use ActiveWorkbook, the macro acts on whichever workbook currently has focus, which can lead to hiding a sheet in the wrong file.
You can also hide several named sheets in the same procedure by setting each worksheet’s Visible property individually:
Sub HideSpecificSheets()
With ThisWorkbook
.Worksheets("Admin").Visible = xlSheetVeryHidden
.Worksheets("Settings").Visible = xlSheetVeryHidden
.Worksheets("LookupData").Visible = xlSheetVeryHidden
End With
End Sub
Before running the macro, confirm that the sheet names in the code exactly match the worksheet tab names, including spaces. For example, "Lookup Data" and "LookupData" are different names. If VBA cannot find the worksheet, the macro will stop with a “Subscript out of range” error.
For a more defensive version, you can check whether a worksheet exists before trying to hide it. This is useful in workbooks where some sheets may be deleted, renamed, or created dynamically:
Sub HideSheetIfExists()
Dim ws As Worksheet
Dim targetName As String
targetName = "Admin"
On Error Resume Next
Set ws = ThisWorkbook.Worksheets(targetName)
On Error GoTo 0
If Not ws Is Nothing Then
ws.Visible = xlSheetVeryHidden
End If
End Sub
Excel requires at least one worksheet in a workbook to remain visible. If you try to hide the only visible sheet, VBA will raise an error. In a controlled workbook, keep a visible user-facing sheet such as Home, Dashboard, or Menu, then very hide supporting sheets such as configuration tables, helper calculations, or import staging sheets.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallOutdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchIf you want the hiding to happen automatically when the workbook opens, place the code in the ThisWorkbook module and use the Workbook_Open event:
Private Sub Workbook_Open()
ThisWorkbook.Worksheets("Admin").Visible = xlSheetVeryHidden
ThisWorkbook.Worksheets("Settings").Visible = xlSheetVeryHidden
End Sub
This approach helps reset the workbook to the intended state each time it is opened, as long as macros are enabled. It is commonly used when a workbook has visible sheets for normal users and very hidden sheets for formulas, lists, audit data, or administrative controls.
VBA Code to Hide Multiple or All Selected Tabs
When a workbook contains several setup, lookup, calculation, or staging sheets, hiding them one at a time is tedious and easy to get wrong. VBA can loop through a defined list of worksheets, every worksheet except a visible dashboard, or the sheets that are currently selected. In each case, setting the Visible property to xlSheetVeryHidden prevents users from restoring those tabs through Home > Format > Hide & Unhide > Unhide Sheet.
The safest approach is usually to hide sheets by name. This avoids accidentally hiding reporting sheets or the only visible sheet in the workbook. Excel must always have at least one worksheet visible, so your macro should leave a main menu, dashboard, or input sheet available.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Hide multiple named worksheets
This example hides a specific group of worksheets by placing their names in an array and looping through it:
Sub VeryHideNamedSheets()
Dim sheetNames As Variant
Dim i As Long
sheetNames = Array("Setup", "LookupTables", "Calculations", "Staging")
For i = LBound(sheetNames) To UBound(sheetNames)
ThisWorkbook.Worksheets(sheetNames(i)).Visible = xlSheetVeryHidden
Next i
End Sub
If one of the worksheet names in the array does not exist, the macro will raise an error. In production workbooks, you can add a small check before hiding each sheet, especially if sheets may be renamed or removed during maintenance.
Hide every sheet except a main sheet
For workbooks with many support tabs, it may be easier to hide everything except one or two user-facing worksheets. The following macro keeps the Dashboard sheet visible and makes all other sheets very hidden:
Sub VeryHideAllExceptDashboard()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "Dashboard" Then
ws.Visible = xlSheetVeryHidden
End If
Next ws
End Sub
To keep more than one sheet visible, extend the condition. For example, you might leave both Dashboard and Input visible:
Sub VeryHideAllExceptUserSheets()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Name
Case "Dashboard", "Input"
ws.Visible = xlSheetVisible
Case Else
ws.Visible = xlSheetVeryHidden
End Select
Next ws
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →End Sub
Hide currently selected worksheet tabs
You can also let an administrator select several sheet tabs manually, then run a macro to make only those selected sheets very hidden. This is convenient during workbook setup, but it needs a guard clause so the macro does not hide every visible sheet.
Sub VeryHideSelectedSheets()
Dim ws As Worksheet
Dim visibleCount As Long
For Each ws In ThisWorkbook.Worksheets
If ws.Visible = xlSheetVisible Then
visibleCount = visibleCount + 1
End If
Next ws
If ActiveWindow.SelectedSheets.Count >= visibleCount Then
MsgBox "At least one worksheet must remain visible.", vbExclamation
Exit Sub
End If
For Each ws In ActiveWindow.SelectedSheets
ws.Visible = xlSheetVeryHidden
Next ws
Free tools Windows power users keep installed
One-click scans. No signup required.
End Sub
This method depends on the active window and the currently selected tabs, so it is best used by workbook maintainers rather than ordinary users. For a controlled deployment, a named-list macro is more predictable because it always targets the same worksheets regardless of what is selected when the procedure runs.
Protecting the VBA Project and Workbook Structure
Setting a worksheet’s Visible property to xlSheetVeryHidden prevents users from unhiding it through Excel’s normal Unhide dialog, but that setting alone is not a complete control. A user who can open the Visual Basic Editor may be able to select the sheet object and change its visibility back to xlSheetVisible. To reduce that risk, protect the VBA project so the code and worksheet object properties are not casually exposed.
To protect the VBA project manually, open the Visual Basic Editor with Alt + F11, right-click the project in the Project Explorer, and choose VBAProject Properties. On the Protection tab, check Lock project for viewing, enter a password, confirm it, and save the workbook as a macro-enabled file such as .xlsm or .xlsb. The protection takes effect after the workbook is closed and reopened. Once locked, users will be prompted for the password before they can view or edit the VBA modules, sheet objects, and workbook object.
You should also protect the workbook structure. Structure protection stops users from adding, deleting, moving, renaming, hiding, or unhiding worksheets through the Excel interface. This is useful alongside xlSheetVeryHidden because it prevents changes to the workbook layout while your VBA controls which sheets are available.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
The workbook structure can be protected from Excel by going to Review > Protect Workbook, checking Structure, and entering a password. You can also apply it with VBA after setting the desired sheet visibility:
Sub ProtectWorkbookStructure()
ThisWorkbook.Protect Password:="StrongPasswordHere", Structure:=True
End Sub
If your macro needs to change sheet visibility later, it must first unprotect the workbook structure, make the change, and then protect it again. For example:
Sub ShowAdminSheetTemporarily()
ThisWorkbook.Unprotect Password:="StrongPasswordHere"
Worksheets("Admin").Visible = xlSheetVisible
ThisWorkbook.Protect Password:="StrongPasswordHere", Structure:=True
End Sub
Use a password that is not hard-coded in widely distributed workbooks if the file contains sensitive business or confidential sheet names. Hard-coded passwords can be discovered by someone with access to the VBA project or with specialized tools. For internal workflow controls, this approach is often sufficient; for highly sensitive data, store the data outside the workbook or restrict access at the file, SharePoint, OneDrive, or database permission level.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallCrashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minute- Use
xlSheetVeryHiddenfor sheets that should not appear in the standard Unhide window. - Lock the VBA project to discourage users from changing worksheet properties or reading the macros.
- Protect the workbook structure to prevent sheet-level layout changes through Excel.
- Keep at least one worksheet visible, because Excel does not allow all worksheets in a workbook to be hidden.
How to Restore Very Hidden Sheets When Needed
When a worksheet is set to xlSheetVeryHidden, it cannot be restored from Excel’s normal Unhide dialog. To make the sheet visible again, you must use VBA or the Visual Basic Editor. This is useful for administrator-only worksheets, configuration sheets, lookup tables, audit data, or calculation sheets that should stay out of view during regular use but still be available for maintenance.
The simplest way to restore a very hidden worksheet is to set its Visible property back to xlSheetVisible. You can do this in the Immediate Window, in a small macro, or as part of an admin routine that temporarily exposes maintenance sheets.
Restore one very hidden worksheet
Use this macro when you know the exact worksheet name:
Sub RestoreAdminSheet()
ThisWorkbook.Worksheets("Admin").Visible = xlSheetVisible
End Sub
After running the macro, the Admin worksheet tab will appear again in the workbook. If the workbook structure is protected, unprotect it first, otherwise Excel may block changes to sheet visibility.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Restore a very hidden sheet in a protected workbook
If you protected the workbook structure with a password, include the unprotect and protect steps in your admin macro:
Sub RestoreAdminSheetProtectedWorkbook()
Const pwd As String = "ChangeThisPassword"
ThisWorkbook.Unprotect Password:=pwd
ThisWorkbook.Worksheets("Admin").Visible = xlSheetVisible
ThisWorkbook.Protect Password:=pwd, Structure:=True
End Sub
This pattern keeps the workbook structure protected after the visibility change is complete. In a production file, avoid placing plain-text passwords in widely distributed code when possible. If the password is stored in the VBA project, protect the VBA project as well, and restrict access to the workbook file itself.
Restore all very hidden worksheets
During maintenance, you may want to reveal every very hidden worksheet at once. The following macro loops through the workbook and restores only sheets that are currently set to xlSheetVeryHidden:
Recommended Free Tools
Sub RestoreAllVeryHiddenSheets()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Visible = xlSheetVeryHidden Then
ws.Visible = xlSheetVisible
End If
Next ws
End Sub
If workbook structure protection is enabled, use this version instead:
Sub RestoreAllVeryHiddenSheetsProtectedWorkbook()
Const pwd As String = "ChangeThisPassword"
Dim ws As Worksheet
ThisWorkbook.Unprotect Password:=pwd
For Each ws In ThisWorkbook.Worksheets
If ws.Visible = xlSheetVeryHidden Then
ws.Visible = xlSheetVisible
End If
Next ws
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
ThisWorkbook.Protect Password:=pwd, Structure:=True
End Sub
Restore sheets from the Visual Basic Editor
You can also restore a very hidden sheet manually from the Visual Basic Editor. Press Alt + F11, select the worksheet in the Project Explorer, open the Properties window with F4, and change the Visible property from 2 - xlSheetVeryHidden to -1 - xlSheetVisible. This method is convenient for one-off maintenance, but macros are more reliable when the same restore process must be repeated across mulle files.
Best Value
Before sharing the workbook again, hide the sheets that should remain unavailable to users and reapply workbook structure protection. A common approach is to keep two macros: one admin macro that restores maintenance sheets, and another that sets them back to xlSheetVeryHidden before distribution.
Security Limitations and Best Practices
Using xlSheetVeryHidden is effective for keeping worksheet tabs out of the standard Excel interface, but it should not be treated as strong security. A very hidden sheet cannot be restored through the ribbon, the sheet tab context menu, or the normal Unhide dialog, which makes it useful for reducing accidental access and keeping users focused on approved worksheets. However, anyone with sufficient Excel knowledge, access to the Visual Basic Editor, or third-party tools may still be able to inspect or change workbook internals.
The most practical setup combines very hidden sheets with workbook structure protection and VBA project protection. Workbook structure protection helps prevent users from inserting, deleting, moving, renaming, hiding, or unhiding worksheets through Excel’s interface. VBA project protection makes it harder for casual users to view or edit the macros that set worksheet visibility. These controls work well for business workbooks where the goal is to prevent accidental changes, hide helper sheets, or guide users through a controlled workflow.
Free tools Windows power users keep installed
One-click scans. No signup required.
- Use
xlSheetVeryHiddenfor helper, configuration, staging, and calculation sheets that users do not need to interact with directly. - Protect the workbook structure after setting sheet visibility so users cannot change worksheet organization through normal Excel commands.
- Protect the VBA project with a password to discourage casual editing of the code that hides and restores sheets.
- Keep at least one visible worksheet, because Excel does not allow every worksheet in a workbook to be hidden.
- Store sensitive data outside the workbook when confidentiality matters, such as in a secured database, SharePoint list, or protected system with proper access control.
Passwords used for workbook structure protection and VBA project protection are deterrents, not enterprise-grade encryption. They can often be bypassed by determined users or specialized utilities. If a workbook contains payroll data, personal information, pricing rules, credentials, or proprietary algorithms, hiding sheets is not enough. In those cases, use file-level encryption, restrict file permissions, apply Microsoft Purview or sensitivity labels where appropriate, and limit access to the workbook itself.
For maintainability, avoid hiding critical in a way that only one person understands. Keep an administrator copy, document which sheets are very hidden, and maintain a controlled macro for restoring them during support or auditing. It is also safer to centralize visibility changes in one module instead of spreading hide and unhide commands across many procedures. This makes the workbook easier to review and reduces the chance that a sheet remains exposed after an error.
A reliable pattern is to hide internal sheets when the workbook opens, protect the workbook structure, and provide authorized users with a controlled maintenance routine. During development, leave protection off until testing is complete, then enable very hidden status and protection before distribution. This approach gives users a clean interface while recognizing that worksheet hiding is primarily an interface control, not a substitute for proper data security.
Frequently Asked Questions
What is the difference between a hidden sheet and a very hidden sheet in Excel?
A normally hidden worksheet can be restored by users through Excel’s standard interface, such as right-clicking a sheet tab and choosing Unhide. A very hidden worksheet uses the VBA xlSheetVeryHidden property, which removes it from the Unhide dialog entirely. Users can only make it visible again through VBA or the Visual Basic Editor if they have access.
How do I make a worksheet very hidden with VBA?
You can set the worksheet’s Visible property to xlSheetVeryHidden. For example, Worksheets("Admin").Visible = xlSheetVeryHidden hides the sheet named Admin so it cannot be unhidden from the Excel interface. To show it again, use Worksheets("Admin").Visible = xlSheetVisible.
Can users still access very hidden sheets if the workbook is protected?
Workbook structure protection helps prevent users from adding, deleting, moving, hiding, or unhiding sheets through the Excel interface. However, it does not encrypt worksheet data or stop someone with sufficient VBA access, file access, or password-cracking tools. For better control, protect both the workbook structure and the VBA project, while avoiding storage of sensitive secrets in hidden sheets.
How can I hide multiple worksheets at once using VBA?
You can loop through worksheet names or through all worksheets in the workbook and set each one to xlSheetVeryHidden. Make sure at least one worksheet remains visible, because Excel requires every workbook to have one visible sheet. A common approach is to keep a dashboard or menu sheet visible and very hide supporting, lookup, or admin sheets.
How do I restore a very hidden sheet if it does not appear in the Unhide menu?
Open the Visual Basic Editor with Alt + F11, select the worksheet in the Project Explorer, and change its Visible property from 2 - xlSheetVeryHidden to -1 - xlSheetVisible. You can also run a short macro such as Worksheets("Admin").Visible = xlSheetVisible. If the VBA project is locked, you will need the project password before you can change it there.
Bottom Line
Using VBA to set a worksheet’s Visible property to xlSheetVeryHidden is the key step when you want to prevent users from unhiding tabs through Excel’s normal right-click or Format menu options. Pair it with workbook structure protection to reduce accidental changes and make the setup harder to bypass.
For a practical next step, add your hide/unhide macros, protect the VBA project and workbook structure, then test the file as a regular user before sharing it. Just remember that this is a usability and control measure, not strong security, so do not rely on very hidden sheets to protect truly sensitive data.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




