How to Increase Default Zoom Level in Outlook 2016

Although there are many accessibility options integrated into modern operating systems and software applications, increasing the default zoom level of received messages in Microsoft Outlook remains surprisingly complicated and inhibiting. I have recently been assisting with computer setup and tutoring of a friend who has macular degeneration, which makes it increasingly difficult to read small text. One of the more difficult tasks was personalizing Outlook 2016 to make the baseline text much larger with minimal required user interaction. Below is a summary of my tribulations and my most recommended way to configure Outlook for those with advanced vision impairment.

These instructions should be equally applicable to Outlook 2010 and Outlook 2013, but have not been tested.

The Wrong and Ineffective Ways to Zoom Messages

There are many general approaches toward increasing the text size in Outlook that I would not recommend. Some of these approaches include:

Increase the global scale and layout.

Description: To increase the general text and icon size throughout Windows, you can increase the scaling factor within Display Settings. The default scale is 100%, but you can quickly adjust it to 125%, 150% and 175% (or even up to 500% via custom scaling). This is similar to setting the "Large Text" option on MacOS and applies globally to all compatible interface elements.

What's Wrong: While this is a helpful technique to generically improve readability across many applications and processes, it has little impact on the UI in Outlook and can actually result in a blurry text appearance as if being artificially scaled. Furthermore, since the majority of emails are HTML-formatted and controlled via CSS, they will appear no different regardless of this global scale factor. There is no level of granular control over this approach either and the effects of changing the default scale factor will vary depending on the software application.

Lower the screen resolution.

Description: Most monitors these days are designed around a relatively high resolution of at least 1920 x 1080 (1080p). As such, lowering the resolution (e.g., down to 1280 x 720) will uniformly increase the size of all elements shown. On a whim, this may seem like a reliable "quick fix" to make everything bigger, but it is actually the least recommended approach out there.

What's Wrong: Unlike traditional CRT monitors that can look sharp at any supported resolution, LCD/LED monitors are physically designed to support one specific resolution. Altering it will almost always result in blurred pixels and decreased clarity, which is counterproductive when attempting to improve readability. Also, since this is a hardware-based adjustment it will impact all aspects of the system equally with no room for making individual adjustments on a per-application basis. In addition, lowering the resolution diminishes the actual on-screen area and reduces the overall number of pixels that could otherwise be put to use enhancing text size and readability.

Force plain text mode and increase the default font size.

Description: Outlook includes the option to adjust the text size for reading and composing plain text messages. (via Options > Mail > Stationary and Fonts) This is effective at enlarging and customizing the font, and will apply to all plain text messages sent or received.

What's Wrong: The obvious disadvantage to this approach is that it requires that all messages be read as plain text (via Options > Trust Center > Email Security > Read all standard mail in plain text). Otherwise, the  vast majority of messages will still use a fixed font size as defined within the embedded HTML/CSS. More annoyingly, when Outlook is configured to only show emails as plain text, any HTML-formatted messages will spit out the HTML source code along with the message and create an unreadable mess. Since most messages are HTML-formatted, forcing plain text output in Outlook causes a serious disruption in readability.

The Right and Automated Way to Zoom Messages

When you open up an email message in Outlook by double-clicking, a Zoom button appears in the top toolbar. Clicking this button allows you to specify the zoom level for that specific message. A shortcut to achieve the same action, as common across most applications, is to hold in CTRL and then roll the mouse wheel forward to zoom in and backward to zoom out (this also works in the reading pane view directly). Unfortunately, there is no integrated way to set the zoom level across all email messages. This means that when you close the zoomed message, any other you open will revert back to the standard 100% zoom level.

To achieve an automated system that zooms all emails by a certain percentage when opened (including HTML-formatted messages) without relying on third party products, we will have to rely on some simple VBA scripting. Note that there is no way to manipulate the "reading pane" directly, so this method is only applicable when actually opening messages via double-click.

Although the script is simplistic and provided below, half the battle is getting everything to behave happily given the heightened security restrictions of macros in recent Microsoft products. I will cover the full process of doing so in a safe and secure manner.

Step 1 - Enable Developer Options

To work with VBA macro scripts in Outlook, you first need to enable the Developer tab.

  1. Select File → Options.
  2. Click on Customize Ribbon from the left-hand menu.
  3. Under the "Customize the Ribbon" section, check the box next to Developer and click OK.

Enable the Outlook Developer Options via Options > Customize Ribbon > Developer.

Step 2 - Enable Digitally Signed Macros

By default, Outlook disables all macros. This is to prevent malicious code from being covertly executed, which was a common threat in earlier versions of Microsoft Office. In order to run our own custom macro, we will need to enable support for digitally signed macros. This will ensure the application remains secure while allowing us to run our own digitally signed macro (as further precaution, the user will also be prompted before any digitally signed macros are run for the first time).

  1. Select File → Options.
  2. Click on Trust Center from the left-hand menu.
  3. Click on the "Trust Center Settings" button.
  4. Click on Macro Settings from the left-hand menu.
  5. Select the option: Notifications for digitally signed macros, all other macros disabled and click OK.

Enable digitally signed macros via the Trust Center options.

Step 3 - Create a Digital Signature

To sign our macro and enable its use in Outlook, we will need to create a unique digital signature on the PC that Office is installed on. Microsoft provides a utility buried in the Office folder to do just that.

  1. Navigate to your main Office installation directory. Below are example default paths for Office 2016:
    1. 64-Bit Install: C:\Program Files\Microsoft Office\Office16\
    2. 32-Bit Install on 32-Bit Operating System: C:\Program Files\Microsoft Office\Office16\
    3. 32-Bit Install on 64-Bit Operating System: C:\Program Files (x86)\Microsoft Office\Office16\ 
  2. Locate the file named SELFCERT.EXE and double-click it to launch.
  3. Read the notice and then enter a certificate name, such as your name or OfficeZoomMacro, then click OK.

Create a self-signed digital certificate for use in Outlook.

Step 4 - Write the Macro

Now that we have most of the legwork complete to run our macro, we can get to the heart of the task and create the macro itself.

  1. Back in Outlook, click on the Developer tab and then click on the Visual Basic button (ALT+F11).
  2. In the Project Explorer on the left-side, select Project1 → Microsoft Outlook Objects → ThisOutlookSession to open the script editor for the internal Outlook macro.
  3. We need to ensure the necessary References are added or else the code will error out. Click into the code editor and then select Tools → References. In the list that appears, check the following options and then click OK (already checked items will appear at the top; if you are using a different version of Outlook the '16.0' will be a different number):
    1. Visual Basic For Applications
    2. Microsoft Outlook 16.0 Object Library
    3. OLE Automation
    4. Microsoft Office 16.0 Object Library
    5. Microsoft Word 16.0 Object Library

Required VBA references for use in our Zoom macro.

  1. Now we can add the macro code. Copy and paste the following into the code editor. Notice the line "ZoomLevel = 175" - This is the line you modify to change the percentage of zoom that you wish to apply by default to every opened message (175 = 175%).

  1. Let's add the digital signature we created earlier. Click Tools → Digital Signature.
  2. From the Digital Signature window, click Choose. The certificate you created earlier should appear (click "More Choices" to choose it, if it is not already selected). Click OK, then click OK again to close the Digital Signature window.

Adding the digital certificate to the Outlook macro.

  1. IMPORTANT: Back in the editor, press CTRL+S or click on the Save icon in the toolbar to save/re-save the macro after applying the digital signature. This will prevent a signature verification issue that affects some instances of Outlook when you attempt to use the macro for the first time. [See comments for additional discussion and what to do if you open Outlook and receive the error: "An error occurred while attempting to verify the VBA project’s signature. Macros will be disabled."]
  2. With the script saved, close the Visual Basic editor.
  3. Close Outlook. You will likely be prompted to save the VBA project again, click Yes. This two-process save (once in VBA and once when closing Outlook) can be necessary to properly apply the digital signature for subsequent use.

The first time you open Outlook after creating the macro and digitally signing it, you will see a security alert. If you click on the "Show Signature Details" hyperlink you can verify that the certificate is the one previously created. Click "Trust all documents from this publisher" to allow the macro to run, and to prevent the alert from appearing each time you open Outlook. If you ever make modifications to the script, you may need to resign it to prevent it from being detected as suspicious and disabled by Outlook.

If everything was done correctly, when you double-click on any message (or create a new message) it should now open up in a new window with the specified zoom level automatically applied. You can still override it by using the zoom button or shortcut described in the first section. As noted earlier, you will need to double-click on each message to view the enlarged text size as it is not possible to interface directly with the reading pane to control zoom levels.

Additional Tasks to Improve Readability for the Vision Impaired

The macro described above will help ensure that the user can read and compose messages (including HTML-formatted ones) using a default magnification. However, there are some other simple tasks that can be performed to better assist users who are visually impaired. My personal suggestions are below:

Enlarge Column Heading and Rows & Disable Reading Pane

The overall UI of Outlook will remain quite small even though the message text will be zoomed in when opened. The main list view of emails can be adjusted to increase column and row text visibility.

  1. Make sure you have the desired folder selected (e.g., Inbox)
  2. Select View → View Settings.
  3. Click the "Other Settings" button.
  4. Click on the "Column Font" and "Row Font" buttons to adjust the text size and formatting, such as increasing the size to 16 pt.
  5. If you wish to disable the reading pane (recommended to ensure the user always views the messages in their zoomed format) you can select the "Off" option under Reading Pane.
  6. Consider also turning off groups by unchecking "Show Items in Groups" to reduce on-screen complexity so that the emails are listed in a simple fashion.
  7. You can also experiment with the "Use compact layout" options in this view, which can have a visual impact depending on the font size and screen resolution.
  8. When done, click OK and then click OK again to close the View Settings window. You can repeat this for other mail folders as desired.

Adjust view settings including column and row sizing to increase visibility.

Modify Conditional Formatting for Unread Messages, Etc.

Similarly to adjusting the heading appearance above, it is also possible to adjust how the messages appear in the list before being opened.

  1. Make sure you have the desired folder selected (e.g., Inbox)
  2. Select View → View Settings.
  3. Click the "Conditional Formatting" button.
  4. Select the desired view rule such as "Unread Messages" and then click the "Font" button and adjust the text accordingly.
    1. Note that the row font configured in the previous section will still be inherited for aspects like size, but here you can adjust the color and other properties.
  5. When done, click OK and then click OK again to close the View Settings window. You can repeat this for other mail folders as desired.

Conditional formatting adjustments can be used to further refine the list view for unread messages, etc.

Adjust the Font for New Messages, Reply Letters and Plain Text Compositions

The following procedure alters the actual font for creating new messages and replying to received mail. Unlike all of the previously offered suggestions, the changes here will also be reflected on the recipient's computer. If you change the font color to maroon and sized to 16 point, the user who receives your message will see that format from their mail reader. The exception is the plain text setting, which is only a local change.

  1. Select File → Options.
  2. Click on Mail from the left-hand menu.
  3. Click on the "Stationary and Fonts" button.
  4. Modify the "New mail messages," "Replying or forwarding messages," and "Composing and reading plain text messages" fonts as desired.
  5. Click OK and then click OK again to close the Options window.

Adjustments made undder the Signatures and Stationery section will be reflected on the recipient's computer.

16 thoughts on “How to Increase Default Zoom Level in Outlook 2016

  1. Works great, thanks.
    Would love to find something to change the zoom level for the reading pane.

    In your code I changed line 26:

    wDoc.Windows(1).Panes(1).View.Zoom.Percentage = 175


    wDoc.Windows(1).Panes(1).View.Zoom.Percentage = ZoomLevel

    • Thank you for spotting the variable typo and I'm glad this has helped you out. As far as I know the reading pane cannot be manipulated from macros to any real extent. In the instance that I worked on for a client, I wound up disabling the reading pane entirely to avoid confusion and to allow more room for displaying the title and details of each message in a large font. This has the added benefit of allowing them to quickly delete spam and unwanted mail without having to load the content and assures every time they do want to read a message it is done so explicitly and will appear in the enlarged format.

  2. Matt,
    Thank you so much for figuring this out and writing a clear tutorial. People have been complaining about this on MS forums for years but MS has failed to implement this easy fix. I appreciate you sharing your knowledge!

  3. Is there some more code so you don't have to open and close each mail, but navigate the up and down arrow on an open email and get the zoom setting to stay.

    • Hi C Appel,

      The main issue is that the window context does not get adequately refreshed when using the message navigation buttons. However, if the new message loses focus and then regains it even an instant later then the custom zoom will be applied. You can simply double-tap the Windows Key to open and close the start menu and in turn update the zoom level in an instant for new messages. A crude automated solution to this is to pragmatically open and close the Windows start menu. In the original script code, locate the "Private Sub oInspector_Close()" function around line 31 and add the following line inside of it:

      SendKeys "^{ESC}", True: DoEvents: SendKeys "^{ESC}", True: DoEvents

      Then save the VBA (CTRL+S) close Outlook (saving again when prompted) and re-open it. Now when you open messages and use the message navigation buttons, the start menu will be called and then closed in a split second, which is enough for the new message to update its zoom level. The downside is you may be slightly annoyed by seeing the start menu flicker by on each message close. Other key combinations can also work but I find this to be the least intrusive and most predictable.

  4. Matt,

    I forgot to say thanks, as I was able to get it to work with Outlook 2013 (Ver15 as long as the corresponding references were selected).

  5. Hi Matt,

    Thanks for your explanations. I tried to set up the macro which would zoom my messages by default once popped out.

    I followed all the steps and I was able to do everything correctly until step 8 "The first time you open Outlook after creating the macro and digitally signing it, you will see a security alert...". I didn't get the this security alert but an error messages stating something was invalid came up (I haven't managed to show up this error messages again, sorry). Any ideas why this could be? The default zoom doesn t work, which is no surprise since there was an error..


    • Hi Matthias,

      I bet you received the alert: "An error occurred while attempting to verify the VBA project's signature. Macros will be disabled." When you first opened Outlook again. After receiving this error, the macro will not run or prompt you again due to a verification issue with the digital signature. This relates to a very particular Outlook glitch and is also easily fixable. Please try the following:

      1.) Close Outlook completely. Then create a NEW digital certificate by re-following the main "Step 3" section of this guide. Give it a different name this time, such as your first name or alias, and then click OK to generate the local certificate. This may not always be necessary but ensures you are using a fresh certificate.

      2.) Open Outlook back up again. Press ALT+F11 to open the VBA editor with the code that should still be inserted from this tutorial. Select Tools > Digital Signature (it will probably say [No Certificate] which is where the problem stems from). Click "Choose..." and then select "More Choices" and locate the newly created certificate then click on it and press OK, then OK again to confirm the signature.

      3.) IMPORTANT: While still in the VBA editor and after just adding the digital signature, press CTRL+S to re-save the macro (or click on the Save icon in the toolbar). If you fail to do this step you may encounter an error when it attempts to verify the signature later on.

      4.) After saving the macro in the previous step, close the macro editor and then close Outlook. You should be prompted "Do you want to save the VBA project 'VbaProject.OTM' to which you should say YES. So you actually are saving TWICE, once in the VBA editor and once when closing Outlook.

      5.) Launch Outlook again and this time you should see the certificate warning, and can click "Trust All Documents From This Publisher" to enable the macro. The zoom should then work as expected.

      Hope this helps!

  6. Followed at the steps however i m getting a error window that say:

    Microsoft Visual Basic Applications

    Compile Error:

    User-defined type not defined

    And then i click accept and it puts in yellow this line: "Private Sub oInspector_Activate()" in this paragraph:

    'FUNCTION: Activate Inspector
    Private Sub oInspector_Activate()

    'Capture current mail message
    Dim wDoc As Word.Document
    Set wDoc = oInspector.WordEditor

    'Update default zoom percentage
    wDoc.Windows(1).Panes(1).View.Zoom.Percentage = ZoomLevel


  7. Matt:

    This doesn't work tho when using short cut keys to move from one email to the other. It only works if you close and open next email.

    Is there a work-around to have this work when using "CTRl-." and / or "CTRL-," short cut keys?

    • Hi Nicolas,

      Please see my recent reply to C Appfel ( for context and one workaround. Basically you have to send the window to the background for a moment and then return focus to it in order to refresh the zoom level for subsequent messages (if using the previous/next shortcuts). One manner of doing this pragmatically is to add the following line to "Private Sub oInspector_Close()"

      SendKeys "^{ESC}", True: DoEvents: SendKeys "^{ESC}", True: DoEvents

      Note that this approach will require you to re-press CTRL if using the keyboard shortcuts to switch to the next message (and unfortunately Outlook doesn't support custom keyboard shortcuts, but you could use a third party hotkey tool or keyboard macro tool to remap CTRL+,/CTRL+. to another combo that doesn't require CTRL.)

  8. Hi Matt, My macro works great for new messages, but when I click on a previous message it does not open in the zoomed view. Do you have any suggestions for me?

    Thanks again!

Leave a Reply