How to Unhide a Hidden Excel Workbook or Macro
Why This Is Happening
I've seen this exact scenario play out on dozens of machines: you open Excel, you know a workbook is running , maybe you can even see macros firing , but the workbook window itself is nowhere in sight. Or you're hunting for a hidden Excel macro workbook and can't figure out why it won't show up in the normal interface. I know this is frustrating, especially when it blocks your work or stops you from editing automation you set up yourself months ago.
Here's what's actually going on. Excel has a built-in mechanism for hiding workbook windows. This is a legitimate feature, not a bug, but it causes enormous confusion because it's easy to trigger accidentally and not obvious to reverse. When a workbook is hidden, it's still open and fully active in memory. Macros in it still run. Events still fire. It just has no visible window.
The most common culprit is Personal.xlsb, Excel's personal macro workbook. This is the file Excel stores in your XLSTART folder (typically C:\Users\[YourName]\AppData\Roaming\Microsoft\Excel\XLSTART\) and opens automatically every time you launch Excel. It's hidden by design so it doesn't clutter your workspace. When you record a macro and choose "Store macro in: Personal Macro Workbook," that's where it goes, and many people later can't find or edit those macros because the container is invisible.
There are three distinct ways a workbook can end up hidden:
- Window-level hiding, someone went to View → Hide and hid the window. The workbook is open but its window is suppressed.
- xlVeryHidden VBA property, a developer set the workbook or worksheet's
Visibleproperty toxlVeryHidden(value: 2) via VBA. This can't be reversed through the normal Excel UI, it requires VBA or the Properties window in the Visual Basic Editor. - Personal.xlsb auto-hidden at startup, Excel hides Personal.xlsb on every open automatically. You have to explicitly unhide it each session if you want to edit it.
Excel's own error messages don't help here. There's no dialog that says "hey, you have 2 hidden workbooks." The Unhide option in the View menu is greyed out unless there's actually something to unhide, and even then, a lot of users don't think to look there. Meanwhile, your macro sits locked away, inaccessible.
The Quick Fix, Try This First
If you want to unhide a hidden Excel workbook, including Personal.xlsb, the fastest path is through the View tab. This works for workbooks hidden at the window level and resolves probably 70% of cases I see.
Open Excel with any workbook active (even a blank one). Click the View tab on the ribbon. Look for the Window group, it's toward the right side of the ribbon. Click Unhide.
If the Unhide button is greyed out, it means Excel doesn't see any hidden windows at all right now, skip ahead to the Advanced Troubleshooting section, because you're dealing with a VBA-level hidden workbook. If it's clickable, a dialog box appears titled "Unhide" listing every hidden workbook by name. Select the one you want, PERSONAL.XLSB is the usual suspect, and click OK.
That workbook's window immediately appears. You can now edit it, view its VBA modules through the Visual Basic Editor (Alt+F11), or do whatever you needed to do with it.
One important note: if you unhide Personal.xlsb, make any changes you need, then close it without re-hiding it, Excel will ask whether you want to save changes. Say yes. But here's the thing, on your next Excel launch, Excel will automatically re-hide Personal.xlsb again. That's by design. So you'll need to unhide it again next time you want to edit it. The fix is temporary by nature unless you permanently delete Personal.xlsb (which would remove all your personal macros) or move your macros into an add-in instead.
This is the standard path for workbooks that were hidden using the View menu's Hide command. It covers Personal.xlsb and any manually hidden workbooks.
Launch Excel. It doesn't matter which workbook you have open, even the default "Book1" blank workbook works. Navigate to the ribbon and click View. In the Window group (third cluster from the right on the View tab), click Unhide.
A dialog box titled Unhide opens. It lists all currently open but hidden workbooks. You'll typically see entries like:
PERSONAL.XLSBMacroBook.xlsx
Select the workbook you want to make visible and click OK. The workbook window immediately becomes visible on screen.
If you want to edit a hidden Excel macro inside that workbook, press Alt + F11 after unhiding to open the Visual Basic Editor. Your macro modules will appear in the Project Explorer panel on the left under the workbook name.
If the Unhide button appears greyed out entirely, it means no window-level hidden workbooks exist in the current session. That's your cue to jump to Step 3 or the Advanced section, the workbook may be hidden at the VBA property level instead.
Once you've made the workbook visible (or even if it's still hidden, VBE can access hidden workbooks too), you can reach your macros directly through the Visual Basic Editor. This is the right approach when your goal is specifically to unhide a hidden Excel macro or edit VBA code.
Press Alt + F11 from anywhere in Excel. The VBE opens in a separate window. On the left side you'll see the Project Explorer panel (if it's not visible, press Ctrl + R).
In Project Explorer, you'll see a tree listing all open workbooks, including hidden ones. Look for your workbook by name. Expand it by clicking the triangle next to it. You'll see folders like:
- Microsoft Excel Objects, contains sheet modules and ThisWorkbook
- Modules, this is where regular macros live (Module1, Module2, etc.)
- Class Modules, custom class objects, less common
Double-click any module to open its code in the editor pane on the right. You can read, edit, add, or delete macros freely from here. Changes save with the workbook.
To run a specific macro directly from VBE, place your cursor inside the Sub procedure and press F5, or use Run → Run Sub/UserForm from the menu bar.
When done, close the VBE with Alt + Q or click the X on the VBE window. Excel remains open.
This is the step most guides skip, and it's where people get stuck. If the View → Unhide option is greyed out but you know a workbook or sheet should be there, you're dealing with xlVeryHidden. This property can only be set and cleared through VBA or the VBE Properties window, it's intentionally inaccessible from the standard UI.
Press Alt + F11 to open the Visual Basic Editor. In the menu bar, click Insert → Module to create a new blank module. Paste this code:
Sub UnhideAllSheets()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
ws.Visible = xlSheetVisible
Next ws
End Sub
Press F5 to run it. Every hidden and very-hidden sheet in the active workbook becomes visible instantly.
If you want to target a specific sheet by name, say a sheet called "MacroData", use this instead:
Sub UnhideSpecificSheet()
ActiveWorkbook.Sheets("MacroData").Visible = xlSheetVisible
End Sub
For a workbook-level unhide (not just a sheet), use:
Sub UnhideWorkbook()
Workbooks("PERSONAL.XLSB").Windows(1).Visible = True
End Sub
After running, close the VBE and return to Excel. The previously invisible sheet or workbook window should now be fully accessible. If you get a runtime error 9 ("Subscript out of range"), double-check the exact file name, it's case-sensitive in VBA on some systems.
There's a cleaner, more surgical way to change a workbook or sheet's visible property without writing a macro, using the Properties pane inside the VBE. This is my preferred approach when I'm already in the editor and want to make a precise change without running code.
Open the Visual Basic Editor with Alt + F11. In the Project Explorer (Ctrl+R to show it), click once on the sheet or workbook object you want to make visible. For example, click on Sheet3 (MacroData) under your workbook name.
Now open the Properties window with F4. A panel appears, usually at the bottom-left of VBE, showing all properties of the selected object. Scroll down the property list until you find Visible.
Click the dropdown next to Visible. You'll see three options:
-1 - xlSheetVisible, fully visible0 - xlSheetHidden, hidden, can be unhidden via right-click on sheet tabs2 - xlSheetVeryHidden, hidden at VBA level, invisible to normal Excel UI
Select -1 - xlSheetVisible. The change is immediate, no need to run a macro. Switch back to Excel with Alt + Tab or Alt + Q and your sheet tab will be visible.
This method works perfectly for sheets. For entire workbook windows, you'll need to use the Window.Visible property via the Immediate window (Ctrl+G in VBE), typing: Workbooks("PERSONAL.XLSB").Windows(1).Visible = True and pressing Enter.
If Excel won't show the Personal.xlsb workbook through any of the above methods, maybe it's corrupted or the VBA project is locked with a password, you can go around Excel entirely and open the file directly from the filesystem.
First, you need to find it. Personal.xlsb lives here by default:
C:\Users\[YourUsername]\AppData\Roaming\Microsoft\Excel\XLSTART\
AppData is a hidden folder. In File Explorer, click the address bar, type that path manually (replacing [YourUsername] with your actual Windows account name), and press Enter. You'll land directly in the XLSTART folder.
Before touching anything, close Excel completely, all instances. Right-click the Excel taskbar icon and check Task Manager if you're not sure (Ctrl+Shift+Esc, look under Processes for "Microsoft Excel").
Now double-click Personal.xlsb from File Explorer. It opens as a normal, visible workbook because Excel isn't automatically hiding it on startup this time. You can now:
- View and edit all macro modules via Alt+F11
- Copy macros to a new workbook
- Delete the file entirely to reset your personal macro storage
To copy macros to a safer location, open the VBE, right-click the module containing your code, choose Export File, save it as a .bas file, then import it into any other workbook via File → Import File in VBE.
If Personal.xlsb has a VBA project password you don't know, that's a separate problem, but opening the file directly at least confirms whether the macros are there and the file isn't corrupted.
Advanced Troubleshooting
Unhide a Hidden Excel Workbook in a Domain-Joined Environment
In enterprise environments, things get more complicated. Group Policy can lock down the VBA editor entirely (policy path: User Configuration → Administrative Templates → Microsoft Excel [version] → Excel Options → Security → Trust Center → VBA Macro Notification Settings). If your VBE is completely disabled, you won't be able to unhide workbooks via the macro approach, IT has to relax that policy or handle it for you.
Also watch for this: in some organizations, Personal.xlsb is replaced by a company-wide shared macro workbook deployed to the XLSTART folder via Group Policy or a login script. That workbook is intentionally hidden and IT-managed. Trying to unhide and edit it may violate your organization's policies, check before proceeding.
Check Event Viewer for Excel Crashes Related to Hidden Workbooks
If Excel crashes when you try to unhide a workbook, open Event Viewer: press Win + R, type eventvwr.msc, hit Enter. Navigate to Windows Logs → Application. Look for errors with Source "Microsoft Office 16" or "Application Error" around the time of the crash. Event ID 1000 is the standard application crash ID. The Faulting Module field will tell you whether the crash originates in Excel's core (excel.exe), a COM add-in DLL, or VBE7.dll (the VBA engine itself).
If VBE7.dll is the faulting module, try this Office repair: Control Panel → Programs → Programs and Features → right-click Microsoft 365 Apps → Change → Quick Repair. This fixes corrupted VBA components without reinstalling Office.
Registry Check for Disabled Unhide Option
In rare cases, a registry key disables the Unhide menu item. Open Registry Editor (Win+R, type regedit, Enter) and navigate to:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Excel\Options
Look for a DWORD value named WindowMenuItems or any policy key referencing "DisableUnhide." If you find one set to 1, you can try setting it to 0, but in a managed environment, Group Policy will likely overwrite it on next login.
Unhiding Workbooks in Excel for the Web vs Desktop
Excel for the Web (browser-based) does not support the View → Unhide option at all as of early 2026. If your hidden workbook only needs to be accessed via Excel online, you're out of luck, you'll need the desktop app. This is a known limitation, not a bug you can work around.
Prevention & Best Practices
Once you've fixed the immediate problem, let's make sure it doesn't come back. The root cause in most cases isn't malicious, it's that Excel's window management features are too easy to trigger accidentally, and the Personal.xlsb architecture is confusing by design.
The biggest preventative shift you can make: stop storing macros in Personal.xlsb unless you specifically need them available in every workbook session. Instead, build a dedicated macro workbook, save it as an Excel Add-in (.xlam), and load it through File → Options → Add-ins → Manage: Excel Add-ins → Go. Add-ins load separately and their VBA code is accessible from VBE without any unhiding dance.
If you do need Personal.xlsb, document what's in it. Seriously, write a comment at the top of each module explaining what the macro does and when it was last edited. I've seen people spend hours trying to unhide a workbook only to find macros inside that no one remembers writing or needs anymore.
For workbooks that genuinely should be hidden (dashboards that pull from a backend data workbook, for example), use a consistent naming convention and document it in the workbook itself, in a hidden sheet comment or in the ThisWorkbook module. Something like:
' BackendData.xlsb
' Hidden intentionally. Unhide via View > Unhide.
' Contains source data for Dashboard.xlsx
' Last modified: 2026-04-01 by [Name]
Also, be careful with the keyboard shortcut Alt + W + H, that's the shortcut for View → Hide in Excel, and it's disturbingly easy to trigger accidentally when you're reaching for another shortcut. If you find yourself hiding workbooks by accident repeatedly, consider whether a workspace layout change (snapping windows, using multiple monitors) might reduce the accidental triggers.
- Store shared macros as .xlam add-in files instead of Personal.xlsb to avoid the hidden-workbook confusion entirely
- Add a comment header to every VBA module explaining what it does and where it lives
- Back up your Personal.xlsb file monthly, copy it from the XLSTART folder to a OneDrive or SharePoint location so you don't lose macros if your profile gets reset
- Before distributing any workbook with hidden sheets or workbooks, run a macro audit: Alt+F11, then use Tools → References to check for broken references that could cause hidden-workbook crashes
Frequently Asked Questions
Why is the Unhide option greyed out in the View tab?
The View → Unhide button only activates when at least one workbook window is hidden at the window level. If it's greyed out, either no workbooks are window-hidden in this session, or the workbook is hidden at the VBA property level using xlVeryHidden. Try the VBE approach instead: press Alt+F11, open the Immediate window with Ctrl+G, and type Workbooks("FileName.xlsb").Windows(1).Visible = True then Enter. If you don't know the file name, look in the Project Explorer, hidden workbooks still appear there even when the Unhide menu doesn't show them.
How do I unhide a hidden Excel macro, not the workbook, just the macro?
Macros themselves don't have a "hidden" property the same way workbooks and sheets do. What you're likely looking for is the macro code inside a module that's inside a hidden workbook. First unhide the workbook using View → Unhide, then press Alt+F11 to open the Visual Basic Editor. In the Project Explorer, expand the workbook name and look under "Modules" for your macro code. If the VBA project is password-protected, you'll see "VBAProject (Locked)" and need the password to view the code.
Personal.xlsb keeps hiding itself every time I open Excel, how do I stop this?
This is intentional behavior, Excel automatically hides Personal.xlsb on startup to keep your workspace clean. You can't fully disable this behavior through normal settings. The best workaround is to use the Unhide option each time you need to edit it, or migrate your macros to an .xlam add-in file instead. Alternatively, you can write a Workbook_Open event macro inside Personal.xlsb's ThisWorkbook module that runs Application.Windows("PERSONAL.XLSB").Visible = True on open, though this creates a circular situation and is generally not recommended.
Can I unhide an Excel workbook that's protected with a password?
Yes and no. You can unhide the workbook window using View → Unhide regardless of whether the workbook has a sheet protection or structure protection password. However, if the workbook structure is protected (with "Protect Workbook" turned on), you won't be able to unhide individual hidden sheets within it, you'd need to unprotect the workbook structure first using Review → Unprotect Workbook and supplying the password. If the VBA project itself is password-locked, you can see the workbook's data but can't edit or view the macro code.
I can see the macro in Alt+F8 but I can't edit its code, what's going on?
If a macro appears in the Macro dialog (Alt+F8) but clicking Edit takes you to a locked or inaccessible module, the VBA project is almost certainly password-protected. This means someone deliberately locked the code. The lock is stored inside the .xlsm or .xlsb file itself. Without the original password, there's no Microsoft-supported way to unlock it. If you own the macro and just forgot the password, there are third-party VBA password recovery tools, but use those only on files you own, and verify the tool's legitimacy before downloading anything.
What's the difference between a hidden Excel workbook and a hidden sheet?
These are two completely separate things. A hidden workbook means the entire file's window is invisible, the file is open in Excel's memory but has no visible window. You unhide it via View → Unhide. A hidden sheet means the workbook is visible and open, but one or more of its tabs (Sheet1, Sheet2, etc.) are not shown, you unhide those by right-clicking any visible sheet tab and choosing "Unhide." A sheet can also be xlVeryHidden, meaning it won't appear in the right-click Unhide menu and requires VBA to restore. These are independent states; a workbook can be visible while containing hidden sheets, or vice versa.