The article looks at how to turn on macros in Excel, explains the basics of macro security and shows how to adjust the security settings to run VBA codes safely.
Like almost any technology, macros can be used for both good and evil. Therefore, in Microsoft Excel, all macros are disabled by default. This tutorial covers different ways to enable macros in Excel and explains potential risks associated with that.
Macro security in Excel
Before you go enable macros in your worksheets, it's important to understand how dangerous they can possibly be.
Though VBA codes are very effective in automating complex and repetitious tasks, they are a significant source of risk from the security point of view. A malicious macro that you run unwittingly may damage or completely delete files on your hard drive, mess up your data, and even corrupt your Microsoft Office installation. For this reason, Excel's default setting is to disable all macros with notification.
How to avoid these dangers? Just follow one simple rule: enable only safe macros – ones that you've written or recorded yourself, macros from trusted sources, and VBA codes that you have reviewed and fully understand.
How to enable macros for individual workbooks
There are two ways to turn on macros for a certain file: directly from the workbook and through the Backstage view.
Enable macros via security warning bar
With the default macro settings, when you first open a workbook containing macros, the yellow security warning bar appears at the top of the sheet right under the ribbon:
If the Visual Basic Editor is open at the time you are opening the file with macros, the Microsoft Excel Security Notice will be displayed:
If you trust the source of the file and know that all the macros are secure, click the Enable Content or Enable Macros button. This will turn on the macros and make the file a trusted document. The next time you open the workbook, the security warning won't appear.
If the source of the file is unknown and you don't want to enable macros, you can click the 'X' button to close the security warning. The warning will disappear, but macros will remain disabled. Any attempt to run a macro will result in the following message.
If you've disabled macros accidentally, simply re-open the workbook, and then click the Enable Content button on the warning bar.
Turn on macros in Backstage view
Another way to enable macros for a specific workbook is via the Office Backstage view. Here's how:
- Click the File tab, and then click Info in the left menu.
- In the Security Warning area, click Enable Content > Enable All Content.
As with the previous method, your workbook will become a trusted document.
What you should know about trusted documents in Excel
Enabling macros through either a message bar or Backstage view makes the file a trusted document. However, some Excel files cannot be made trusted documents. For examples, files opened from an unsafe location such as the Temp Folder, or if the system administrator has set the security policy in your organization to disable all macros without notification. In such cases, the macros are only enabled for a single time. On the next opening of the file, Excel will prompt you to enable the content again. To avoid this, you can change your Trust Center settings or save the file to a trusted location.
Once a particular workbook becomes a trusted document, there is no way to un-trust it. You can only clear the Trusted Documents list. For this, do the following:
- Click File > Options.
- On the left side, select Trust Center, and then click Trust Center Settings.
- In the Trust Center dialog box, select Trusted Documents on the left.
- Click Clear, and then click OK.
This will make all previously trusted files untrusted. When you open such a file, the security warning will show up.
Tip. If you do not want to make any documents trusted, tick the Disable Trusted Documents box. You will still be able to turn on macros on opening a workbook, but only for the current session.
How to resolve "Microsoft has blocked macros"
In new versions of Excel, Microsoft has changed the behavior for macro-enabled files downloaded from the internet. Instead of the yellow Security Warning that allows enabling the content straight away, it now often displays a read Security Risk bar with this message: Microsoft has blocked macros from running because the source of this file is untrusted.
Clicking Learn More won't unblock the macro – it just takes you to a web page explaining the reasons and solutions.
How to unblock a macro workbook in Excel
To unblock a macro that is blocked by Microsoft, this is what you need to do:
- Close the workbook containing the blocked macro.
- In File Explorer, browser to the location where the workbook is saved.
- Right-click the file, and select Properties from the context menu.
- In the Properties dialog box, check the Unblock box, and then click OK.
How to enable macros for one session
In some situations, it stands to reason to enable macros only for a single time. For example, when you received an Excel file with VBA code that you'd like to investigate, but you do not wish to make this file a trusted document.
The following instructions will guide you through the steps to enable macros for the duration that the file is open:
- Click the File tab > Info.
- In the Security Warning area, click Enable Content > Advanced Options.
- In the Microsoft Office Security Options dialog box, select Enable content for this session, and click OK.
This turns on macros for one time. When you close the workbook, and then reopen it, the warning will appear again.
How to enable macros in all workbooks via Trust Center
Microsoft Excel determines whether to allow or disallow VBA codes to run based on the macro setting selected in the Trust Center, which is the place where you configure all the security settings for Excel.
To get macros enabled in all Excel workbooks by default, this is what you need to do:
- Click the File tab, and then click Options at the very bottom of the left bar.
- On the left-side pane, select Trust Center, and then click Trust Center Settings… .
- In the Trust Center dialog box, click Macro Settings on the left, select Enable all macros and click OK.
- The option you set via the Trust Center becomes the new default macro setting and applies globally to all of your Excel files. If you want to enable macros for only specific workbooks, save them in a trusted location instead.
- Enabling all macros in all workbooks makes your computer vulnerable to potentially dangerous codes.
Excel macro settings explained
Bellow we will briefly explain all macro settings in the Trust Center to help you make an informed decision:
- Disable all macros without notification - all macros are disabled; no warning will show up. You won't be able to run any macros except the ones stored in trusted locations.
- Disable all macros with notification (default) - macros are disabled, but you can enable them on a case-by-case basis.
- Disable all macros except digitally signed macros – unsigned macros are disabled with notifications. Macros digitally signed with a special certificate by a trusted publisher are allowed to run. If you have not trusted the publisher, Excel will prompt you to trust the publisher and enable the macro.
- Enable all macros (not recommended) - all macros are allowed to run, including potentially malicious codes.
- Trust access to the VBA project object model - this setting controls programmatic access to the object model of Visual Basic for Applications. It's disabled by default to prevent unauthorized programs from changing your macros or building self-replicating harmful codes.
When changing the Trust Center settings, please keep in mind that they apply only to Excel, not to all Office programs.
Enable macros permanently in a trusted location
Instead of manipulating the global macro settings, you can configure Excel to trust specific locations on your computer or local network. Any Excel file in a trusted location opens with macros enabled and without security warnings, even if the Disable all macros without notification option is selected in the Trust Center settings. This lets you run macros in certain workbooks when all other Excel macros are disabled!
An example of such files in the Personal Macro Workbook – all VBA codes in that workbook are available for you to use whenever you start Excel, regardless of your macro settings.
To view the current trusted locations or add a new one, carry out these steps:
- Click File > Options.
- On the left-hand pane, select Trust Center, and then click Trust Center Settings… .
- In the Trust Center dialog box, select Trusted Locations on the left side. You will see a list of the default trusted locations. These locations are important for the correct work of Excel add-ins, macros and templates, and should not be changed. Technically, you can save your workbook to one of the Excel default locations, but it's better to create your own one.
- To set up your trusted location, click Add new location… .
- In the Microsoft Office Trusted Locations dialog box, do the following:
- Click the Browse button to navigate to the folder that you want to make a trusted location.
- If you wish any subfolder of the selected folder to be trusted too, check the Subfolders of this location are also trusted box.
- Type a short notice in the Description field (this can help you manage multiple locations) or leave it empty.
- Click OK.
- Click OK twice to close the remaining dialog boxes.
Done! You can now place your workbook with macros in your own trusted location and do not bother about Excel's security settings.
Tips and notes:
- Please be very careful when choosing a trusted location. Because Excel automatically enables all macros in all workbooks that are stored in trusted locations, they become kind of loopholes in your security system, vulnerable to macro viruses and hacking attacks. Never make any temporary folder a trusted source. Also, be cautious with the Documents folder, rather create a subfolder and designate it as a trusted location.
- If you've mistakenly added a certain folder to the list of trusted locations, select it and click the Remove button.
How to enable macros programmatically with VBA
On Excel forums, many people ask if it is possible to enable macros programmatically on opening a workbook and disable them before exiting. The immediate answer is "No, it's not possible". Because macro security is critical for the security of Excel, Microsoft designed any VBA code to only be triggered by a user click.
However, when Microsoft closes a door, the user opens a window :) As a workaround, someone suggested a way to force the user to enable macros with a kind of "splash screen" or "instruction sheet". The general idea is as follows:
You write a code that makes all the worksheets but one very hidden (xlSheetVeryHidden). The visible sheet (splash screen) says something like "Please enable macros and re-open the file" or provides more detailed instructions.
If macros are disabled, the user can only see the "Splash Screen" worksheet; all other sheets are very hidden.
If macros are enabled, the code unhides all the sheets, and then makes them very hidden again when the workbook closes.
How to disable macros in Excel
As already mentioned, Excel's default setting is to disable macros with notification and allow users to enable them manually if they want to. If you'd like to disable all macros silently, without any notification, then choose the corresponding option (the first one) in the Trust Center.
- In your Excel, click the File tab > Options.
- On the left-side pane, select Trust Center, and then click Trust Center Settings… .
- In the left menu, select Macro Settings, choose Disable all macros without notification, and click OK.
That's how you can enable and disable macros in Excel. I thank you for reading and hope to see you on our blog next week!