VBA & Macro Problems

How to Fix Excel Macros Missing from the Macro Dialog

Camila MilosovichCamila Milosovich Oct 23, 2026 869 views

Question details

The user is unable to find or execute their VBA macros because they do not appear in the standard Macro dialog box.

How to Fix Excel Macros Missing from the Macro Dialog
Product
Microsoft Excel
Device & OS
not provided
Scenario
Attempting to run a newly created or imported VBA macro from the Macro dialog list.
Observed behavior
The macro is missing from the list, typically due to being an event procedure, requiring arguments, or containing VBA compilation errors.
Before you start

Before troubleshooting your VBA code, ensure that your workbook is saved in a macro-enabled format (.xlsm or .xlsb) and that you have enabled macros in your Excel Trust Center settings.

Solution 1Recommended

Verify the Procedure Location and Arguments

Macros will only appear in the dialog if they are public procedures located in a standard module and do not require parameters.

Excel's Macro dialog filters out certain types of VBA code by design. Event macros (like those triggered by clicking a sheet) and macros that require specific input arguments are intentionally hidden because they cannot be run as standalone procedures.

1
Open the VBA Editor

Open your Excel workbook and press ALT + F11 on your keyboard to launch the Visual Basic for Applications (VBA) Editor.

2
Check the module type

Look at the Project Explorer pane on the left. Ensure your code is inside a standard 'Module' (e.g., Module1). If it is placed inside 'ThisWorkbook' or a specific 'Sheet' module, it is treated as event code and will not show in the dialog.

3
Verify procedure arguments

Check the first line of your macro. It must begin with 'Sub MacroName()' without any parameters inside the parentheses. If it looks like 'Sub MacroName(x As Integer)', it will be hidden.

4
Move the code if necessary

If your macro is in the wrong place, click Insert > Module from the top menu, and cut and paste your VBA code into the new standard module window.

Verify the Procedure Location and Arguments
Public vs Private Procedures: Make sure your sub is not declared as 'Private Sub'. Private macros are intentionally hidden from the Macro dialog box. Change it to 'Public Sub' or simply 'Sub'.
Free Microsoft Office alternative

Try WPS Office for Seamless Spreadsheet and Macro Handling

If you frequently encounter frustrating VBA bugs or performance issues in Microsoft Excel, consider switching to WPS Office. It provides a lightweight, highly compatible spreadsheet environment with a familiar user interface, making migration effortless.

  1. 1. Download WPS Office: Visit the official WPS website to download and install the free office suite.
  2. 2. Open your workbook: Launch WPS Spreadsheet, click 'Menu' > 'Open', and select your existing Excel file.
  3. 3. Continue working seamlessly: Work on your data immediately with full support for standard spreadsheet functions and formatting.
Fully compatible with Microsoft Excel formats (.xlsx, .xlsm, .csv) ensuring no formatting loss.Advanced spreadsheet features for data analysis and seamless modeling workflows.Lightweight installation with significantly faster load times for complex workbooks.Free to use with an intuitive, tabbed user interface similar to what you already know.
QA img-9

Frequently Asked Questions

Why did my macro disappear after I saved and reopened my Excel file?

If you saved the file as a standard Excel Workbook (.xlsx) instead of a Macro-Enabled Workbook (.xlsm), all VBA code is automatically stripped out upon saving. You must always save files containing macros in the .xlsm or .xlsb format.

Can I run an event macro manually from the Macro dialog?

No, event macros (such as Worksheet_Change or Workbook_Open) are designed to run automatically only when a specific action occurs in the spreadsheet. They are intentionally hidden from the standard Macro dialog (ALT + F8).

How do I fix missing VBA references causing hidden macros?

In the VBA editor, go to Tools > References in the top menu. Scroll through the list and look for any checked item marked as 'MISSING:'. Uncheck the missing library if it is no longer needed, or browse your system to locate the correct file, then click OK and recompile your project.