To enable VBA macros in classic Outlook for Windows, open File > Options > Trust Center > Trust Center Settings > Macro Settings, choose an appropriate notification or signing option, and select OK. This setting is not available in new Outlook for Windows, Outlook on the web, or Outlook for Mac, which do not support Outlook VBA macros.
What Outlook macros are—and which Outlook supports them
An Outlook macro is a small program written in Visual Basic for Applications (VBA). In classic Outlook for Windows, a macro can automate tasks involving Outlook items and actions—for example, organizing messages, working with calendar entries, or carrying out a repetitive step on selected items. Macros run inside Outlook’s VBA environment; they are not the same thing as a rule, an email add-in, or a macro embedded in an Office attachment.
The Outlook version matters before you look for a security setting. Classic Outlook for Windows includes a VBA editor and Trust Center controls for macro security. New Outlook for Windows has a different architecture and does not run Outlook VBA projects. Outlook on the web and Outlook for Mac also do not provide this Outlook VBA macro capability. If your app’s menus do not match the steps below, check whether you are using classic Outlook rather than assuming a setting is missing.
In classic Outlook, VBA code is kept in Outlook’s macro project, commonly named VbaProject.otm, rather than saved inside each email. That means enabling macros permits the Outlook VBA project to run; it does not switch on a feature in an individual message. A macro may be written to respond to an Outlook event, but it is still Outlook VBA code and is subject to the application’s security controls.
Check that you have classic Outlook for Windows
Classic Outlook has the traditional File menu and an Options page. If you can open File > Options, then find Trust Center, you are likely in the version for which these instructions apply. New Outlook uses a different interface and does not include the Trust Center macro setting or the Outlook VBA editor. An organization may provide both apps, so check the app name or switch back to classic Outlook if your work requires a VBA macro.
Also confirm that Outlook is installed as a desktop application. A browser tab at Outlook on the web cannot run a local Outlook VBA project. Outlook for Mac has its own settings and capabilities, but it does not offer VBA macro support equivalent to classic Outlook for Windows. Installing or enabling a macro in classic Outlook therefore does not make it available across every Outlook app or device.
Enable macros in classic Outlook
- Open classic Outlook for Windows and select File.
- Select Options, then Trust Center.
- Select Trust Center Settings, followed by Macro Settings.
- Choose the security option that matches your organization’s policy and the macro’s source. For most users, do not select the option that enables all macros.
- Select OK to close the Trust Center windows, then close and reopen Outlook if the change does not take effect immediately.
The available labels can vary by Office version or organizational policy. Common choices include disabling macros without a notification, disabling them while showing a notification, allowing only digitally signed macros, and enabling all macros. A notification-based choice lets you make a decision when a macro is encountered; it does not make unknown code safe. If the controls are unavailable or greyed out, an administrator may have set a policy that prevents users from changing them.
For a macro you trust and expect to use, a setting that blocks macros by default while allowing a deliberate, controlled exception is generally safer than enabling every macro. If your version offers a digitally signed-macro option, the signature identifies the publisher and helps show whether code has changed since it was signed. A signature is not a guarantee that the code is harmless: you still need to trust the signer and understand why the macro is being used.
Show the Developer tab and run a macro
Changing the security setting only controls whether VBA macros are permitted; it does not create a macro or automatically run one. To access Outlook’s macro tools, you may need to show the Developer tab:
- Select File > Options > Customize Ribbon.
- Under Main Tabs, select the Developer checkbox.
- Select OK. The Developer tab should now appear on the ribbon.
- Select Developer > Macros, choose a macro you recognize, and select Run.
You can open the VBA editor with Alt+F11 in classic Outlook for Windows. The editor lets you inspect or edit the Outlook VBA project, but opening it is not proof that a macro is safe. Avoid pasting code from an unknown email, website, or forum into the editor. If you need to install a macro supplied by someone else, confirm what it does, where it came from, and whether your workplace permits it before running it.
Some macros are designed to run in response to an Outlook event rather than from the Macros dialog. For example, a developer can write event-handling code in Outlook’s VBA project. Such code may require Outlook to be restarted after installation or changes, and it still depends on macro security allowing it to run. Do not assume that any event-based code is active simply because it appears in the editor.
Choose a security setting with care
Macros can perform useful work, but VBA code can also take actions on a user’s behalf, such as reading or changing Outlook data or creating and sending messages. Enabling macros broadly increases the consequences of running harmful code. Treat macro security as a decision about code you choose to run, not as a routine way to make every message or attachment work.
- Prefer a restrictive default. Leave macros blocked or notification-controlled unless a specific, legitimate task requires them.
- Verify the source. Get code from a known developer or your organization’s IT team, not from an unexpected attachment or a link in an unsolicited message.
- Inspect what the code does. Be especially cautious about code that sends mail, accesses files, or changes account or security settings.
- Follow workplace policy. An employer may require approved, signed macros or may prohibit VBA entirely.
- Turn off broad access again. If you temporarily changed a setting for a controlled task, return it to a restrictive option when finished.
A common misconception is that enabling Outlook macros causes VBA code inside an incoming email to execute just because the email is opened. Outlook’s macro setting concerns the Outlook VBA project; it does not turn ordinary message text or an attached Office document into an Outlook macro. Attachments can pose other risks, however, and opening an attachment that asks you to enable its own macros is a separate security decision. Do not enable code just because a message claims it is necessary to view a file.
Why the macro option may be missing or not working
If you cannot find Macro Settings, first verify that you are in classic Outlook for Windows. New Outlook, Outlook on the web, and Outlook for Mac do not offer the same VBA macro controls. If you are in classic Outlook but the setting is disabled, your organization may enforce macro policy centrally. Contact IT rather than trying to bypass a managed security setting.
If the setting appears to have changed but the macro still will not run, check the following:
- Confirm that Outlook was restarted after changing the setting, especially if the macro uses startup or event code.
- Check whether the macro project actually contains the macro and whether its name appears under Developer > Macros.
- Check that the macro is intended for Outlook and for the Outlook version you are using. Code written for another Office program may not work in Outlook.
- Look for a prompt or policy notice that explains why the macro was blocked. Do not respond by enabling all macros indiscriminately.
- If the macro was digitally signed, confirm that the certificate and publisher are trusted according to your organization’s guidance.
Changing Outlook macro security also will not fix a broken macro. Code can fail because of an error, a changed mailbox configuration, missing permissions, or an assumption about an Outlook item that is no longer true. If the macro is business-critical, ask its author or your organization’s support team to diagnose it instead of lowering security for all macros.
Alternatives when VBA is unavailable
If you use new Outlook, Outlook on the web, or Outlook for Mac, look for a solution designed for that environment rather than trying to enable VBA. Outlook rules can handle straightforward message sorting, forwarding, or categorization when the required conditions and actions are available. They are simpler than code, but they cannot reproduce every custom VBA workflow.
For cross-service automation, Microsoft Power Automate can connect supported Outlook actions with other services. The available triggers, actions, and account requirements depend on the flow and the Microsoft 365 environment, so check the connector details before designing a process. Outlook add-ins are another option for supported tasks, but they are distinct from VBA and may require installation or administrator approval. Office Scripts are not a substitute for Outlook VBA: they are intended for automating supported tasks in Excel, not for running Outlook macros.
When choosing an alternative, describe the task in practical terms—such as moving messages that meet certain criteria or notifying a team when a calendar event changes—then check which app and account types support it. A built-in rule may be enough; a managed Power Automate flow or approved add-in may suit a more complex process. If a workflow depends on a local VBA project, it may require classic Outlook for Windows and may not travel with the user to another Outlook client.
Frequently Asked Questions
Can I enable macros in new Outlook?
No. New Outlook for Windows does not support Outlook VBA macros, so there is no macro-security switch to enable. Use classic Outlook for Windows if you must run an existing Outlook VBA project, or consider a supported rule, add-in, or Power Automate flow.
Does Outlook for Mac support VBA macros?
No. Outlook for Mac does not provide the classic Outlook for Windows VBA macro environment. A macro created for classic Outlook therefore will not become usable by changing a setting on a Mac.
Is it safe to select Enable all macros?
It is generally not recommended because it permits macros without the usual blocking safeguards. Only consider a permissive setting in a controlled situation where the code and source are trusted and your organization allows it; a narrower, policy-approved option is safer.
Why is Macro Settings greyed out?
Your organization may manage the setting through Office policy, or you may be using an Outlook version that does not support VBA. Verify that you are in classic Outlook for Windows; if the control remains unavailable, contact your IT administrator.
Will enabling macros make an email attachment run automatically?
No. Outlook’s VBA macro setting enables or blocks code in Outlook’s macro project; it does not automatically execute VBA in an attached document when you open a message. Treat any attachment that asks you to enable its own macros as a separate and potentially risky request.
Related
- How to See Named Ranges in Excel and Check Their Cells
- Absolute Cell Reference Excel Shortcut: F4 Explained
- Excel Regression Analysis Output: What Each Statistic Means
Try it: the Column Letter to Number: aA is 27, XFD is 16,384. Converts both ways.
More in VBA & macros
- Excel Macro Error? Common Causes and FixesAn Excel macro error usually means VBA is blocked, the code cannot find an expected workbook, worksheet, or…
- Excel VBA UserForm Data Entry: Build a Simple FormTo enter data through an Excel VBA UserForm, create a form with text boxes and a Save button,…
- VBA Array Size: Practical Limits, Bounds, and Memory UseThere is no single fixed maximum size for a VBA array: its practical limit depends on available memory,…
- VBA Array Add: How to Append Values and Resize an ArrayVBA has no built-in Array.Add method. To add values, use a dynamic array and resize it with ReDim…
- VBA Loop Types: For, Do, and While ExplainedVBA has four commonly encountered loop constructs: For…Next, For Each…Next, Do…Loop, and While…Wend. Use For…Next when a counter…
- Excel Macro VBA Tutorial: Write and Run a First MacroAn Excel macro is a set of instructions that automates actions in a workbook, and VBA (Visual Basic…
Sources: Function behaviour and menu paths: Microsoft Support documentation for Excel. Method & sources
Spotted an error in this guide? Let us know.