Last reviewed on August 13, 2015   —  67 Comments

I get quite a few complaints from people who say their fonts are tiny (or huge) or the font used for the reply shrinks yet Microsoft Outlook shows they are using a normal size font (such as 10 or 12 pt).

This is caused by the zoom setting. The easiest fix is to hold Ctrl as you roll the mouse wheel (this is the likely cause for many people).

Keyboarders can use the Ctrl and plus (+) or minus (-) keys to change the zoom level in increments or Ctrl and the zero (0) key to go to 100%. You can also click the Zoom button and set it back to 100%.

You can also use the Zoom button on the ribbon. Click it to open the zoom dialog and select the desired zoom level.
Use the zoom command on the ribbon

Outlook 2010 (and Outlook 2013) have a zoom slider in the main Outlook window status bar (under the To-Do bar on the right side). Use this slider to adjust the zoom in the reading pane. If you prefer, you can click on the zoom % (100% in the screenshot) to open the zoom dialog.

zoom slider in status bar

Many times when you make the change to a message you are composing and send it, the next message you compose reverts to the goofy zoom setting. This is because making changes to a message then sending the message applies the changes to that message only. If you make the changes then close the message, it should apply the changes to all future messages.

Note that changing the zoom setting is not persistent for reading messages. To make the zoom level persistent, you need to use an add-in or a macro. A list of zoom tools is in the Tools Section and you'll find a macro on page 2: Macro to set the zoom level

The "zoom problem" generally affects only messages you compose. If you are receiving messages with huge letters and the font size is large (e.g., 100 pt), see Help! My Fonts are Huge!

When composing message, zoom is always on

When zoom is stuck on a value (usually a tiny font), you can reset it by changing the zoom level then closing, but not sending, the message. If you change the zoom level then send, the change applies only to the message you changed, not to future messages.
When the font is smaller (or larger) than the font size indicates, click the zoom button to change

  1. Open a new message
  2. Click the Zoom button on the ribbon
  3. Change the zoom to the desired level
  4. Close the message.
  5. Click new message (or reply) and the zoom should be the desired level.


Zoom Email Windows

The Zoom Email Windows tool for Outlook automatically zooms all Outlook reading pane windows. It zooms every Outlook window to your specified zoom factor. It's perfect for being able to instantly and clearly see the email and other Outlook windows. Enter code WD9BHK53 during checkout.


ZoomIn can save your preferred Outlook email zoom setting.


Set the zoom level using VBA

You can use VBA to force the zoom level in Outlook 2007, Outlook 2010, or when using Word as the email editor. Don't forget to set the desired zoom level in this line:
wdDoc.Windows(1).Panes(1).View.Zoom.Percentage = 150
To use the macro:

  1. Set your macro security to Low.
  2. Open the VB editor using Alt+F11
  3. Expand Project1 to show ThisOutlookSession
  4. Paste the macro in ThisOutlooksession
  5. Set a reference to Microsoft Word in Tools, References
  6. Click in the Application_Startup macro and press the Run button to kick start it without restarting Outlook.

Option Explicit
 Dim WithEvents objInspectors As Outlook.Inspectors
 Dim WithEvents objOpenInspector As Outlook.Inspector
 Dim WithEvents objMailItem As Outlook.MailItem
Private Sub Application_Startup()
 Set objInspectors = Application.Inspectors
 End Sub

Private Sub Application_Quit()
 Set objOpenInspector = Nothing
 Set objInspectors = Nothing
 Set objMailItem = Nothing
 End Sub
Private Sub objInspectors_NewInspector(ByVal Inspector As Inspector)
 If Inspector.CurrentItem.Class = olMail Then
 Set objMailItem = Inspector.CurrentItem
 Set objOpenInspector = Inspector
End If
 End Sub
 Private Sub objOpenInspector_Close()
Set objMailItem = Nothing
 End Sub
Private Sub objOpenInspector_Activate()
Dim wdDoc As Word.Document
 Set wdDoc = objOpenInspector.WordEditor
 wdDoc.Windows(1).Panes(1).View.Zoom.Percentage = 150
End Sub

How to use the macro

First: You will need macro security set to low during testing.

To check your macro security in Outlook 2010 or 2013, go to File, Options, Trust Center and open Trust Center Settings, and change the Macro Settings. In Outlook 2007 and older, it’s at Tools, Macro Security. If Outlook tells you it needs to be restarted, close and reopen Outlook. Note: after you test the macro and see that it works, you can either leave macro security set to low or sign the macro.

Now open the VBA Editor by pressing Alt+F11 on your keyboard.

To use the macro code in ThisOutlookSession:

  1. Expand Project1 and double click on ThisOutlookSession.
  2. Copy then paste the macro into ThisOutlookSession. (Click within the code, Select All using Ctrl+A, Ctrl+C to copy, Ctrl+V to paste.)

Application_Startup macros run when Outlook starts. If you are using an Application_Startup macro you can test the macro without restarting Outlook by clicking in the first line of the Application_Startup macro then clicking the Run button on the toolbar or pressing F8.

More information as well as screenshots are at How to use the VBA Editor.

Discuss in our community


  1. Bill says

    Thanks for the effort, but this does not work for me (running Outlook 2010 32 bit on a win 7/64 bit system). After adding the macro and restarting Outlook, the macro doesn't operate.

  2. Randy Dugger says

    In order for this to work, you need to change the following line:
    Private Sub Application_Quite()

    Private Sub Application_Quit()

    The original author had a typo. Be sure to enable Macros in Outlook in order for this to work, then close/open Outlook. You can adjust your default zoom level by changing the 140 (zoom %) to a lesser number.

    • Diane Poremsky says

      Thanks for catching that typo. Tip: to avoid closing outlook, click in the Application Startup macro and press the Run button.

  3. Matz Höög says

    I get a Compile error: User-defined type not defined on the row "Dim wdDoc as Word.Document" when I double-click a message to read it in a new window.

    It works when I create a new message.

    I have Outlook 2013 (and Word 2013) on a Win7 Pro 64-bit.

  4. Jeffrey Harris says

    I had to make a few adjustments. First, I needed to change "Private Sub Application_Startup()" to "Public Sub Application_Startup()" for macro to appear in the macro entries. Second, I had to add a reference to the Word library to resolve the reference to word.document.

    It now works, but only when I open and close messages from a folder. If I navigate from message to message, it reverts back to 100% after the first message.

    Is there a way to make this work when navigating from message to message?

    • Diane Poremsky says

      You really don't need startup macros to be listed in the macro list - it should start when Outlook starts. Thanks for mentioning that I forgot to mention the reference to word.

      I'll look into making it change when browsing - I'm not sure its possible (at least using simple code) because of the way the window is identified.

  5. steve says

    I just downloaded office 2013 and in outlook 2013 my zoom bar is stuck on matter what I try it is frozen on 10%. I tried to use the control button, I tried to turn the zoom function off and on again to no avail. Any suggestios would be much apprecaited.

    • Diane Poremsky says

      Did you try restarting Outlook or even rebooting? Does clicking on the button next to the slider (where i presume it says 10%) open the Zoom dialog?

    • Diane Poremsky says

      Do you get any error messages? (It's working here in Outlook 2013 on Windows 7.)

  6. Diane Poremsky says

    As an FYI, i was able to repro - if the reading pane is turned off, the zoom slider will be grayed out and show the last used zoom setting.

  7. Ivo says

    Its not working for me. What does mean:
    Set a reference to Microsoft Word in Tools, References?
    After press F5 I get the line : Private Sub objOpenInspector_Activate() yellow and wdDoc As Word.Document is highlithed.

    • Diane Poremsky says

      In the VBA Editor, go to Tools menu, select References. Find Microsoft Word in the list and add a checkmark.

  8. MAC C says

    Thanks. Worked for me, Windows 8 & Outlook 2013. Do you know a way to adjust the zoom setting for the Reading Pane(email preview)?

    • Diane Poremsky says

      No, sorry. AFAIK, the reading pane is not programmable, other than turning it on and off.

  9. Kevin Meyer says

    Thanks Diane, you helped solve a problem that has bugged me for a VERY long time!
    Warm regards, Kevin

  10. Murtaza says

    excellent work i have just pasted that changed the email address and it worked for me can you plese let me know how can i auto enable it and how can i make it auto run on any other person computer.

    • Diane Poremsky says

      The zoom macro should run automatically. If you are talking about a different macro, I'll need to know which one.

  11. Jess says

    Thanks for the code. Is it possible to make it work only for some specific mails? I have some mails sent from MacBook, they always appear in tiny fonts (like 7.5 pt). I am looking for some tips to automatically change their fonts to a fixed size (Say 14 pts)...

    This is a known problems for a long time and no one ever succeeded in fixing it. This script looks promising

  12. Rixter says

    Once this is applied, if I turn up the macro security again, the script stops running. Is there anyway to trust this particular script?

  13. Rixter says

    Thanks Diane. I'm getting all the bits and pieces done, but its not coming together. I have cert attached to my macro, but I would like that macro (which is the OutlookDefaultZoom) to run whenever Outlook is launched, automatically. Without having to add it to my toolbar. Is there any handy documentation on that?. Thanks

  14. Rixter says

    Thanks Diane. After applying the cert properly, it all came together. Much appreciate the macro and the online assistance.

  15. Jimbo says

    This script is only for reading email in their own windows correct? I did it and it works for that, but not for the dreaded reading pane. Was is also supposed to do the zoom automatic on the reading pane?

    • Diane Poremsky says

      The macro is for messages opened in their own windows. Ctrl+mouse wheel will adjust the reading pane, but it's not persistent. :(

  16. Parinibbana says

    I too would like to find a way to fix the zoom in the dreaded reading pane. Ctrl+mouse works, but is burdensome if you just want to have a brief look at the contents of an email.

    Usually I would just use the arrow-down-key to go from one email to the next. Having to grab the mouse for every email doesn't sound like a desirable solution to me.
    Any further ideas of how to tackle this issue, Diane?

    • Diane Poremsky says

      You can set the font larger for plain text messages but your options are limited to the zoom control for html. Sorry.

  17. Jeewan Dabideen says

    Works great, thank you! It sucks that no one can get the preview pane zoom to be permanent. The closest I have used was this add-on called Zoom Email. it works okay but you see it zoom in every time you click an inbox message.

    • Diane Poremsky says

      The reading pane is not programmable, so you need to change the zoom manually. Sorry.

  18. Paul Poissenot says

    Diane, I am using Windows 8 office 2013. The macro works but I had to remove the module that is created in VB and add a class module then paste code and save. Is there a way to get the macro to work on emails that open automatically after you delete or hit next on the first email. It is only working when I select the email from the inbox. It does not work on emails that open automatically.

    • Diane Poremsky says

      As far as I know, no, you can't make it work on messages that open like that, because the macro doesn't detect the change. This line is looking for a new window to open: objInspectors_NewInspector but when the next message loads automatically, a new window doesn't open.

    • Keith says

      Played around with the macro a little. I'm not much of a VB guru. Even though a new window does not open, the objInspectors_NewInspector is acted on. The problem seems to be how Windows itself is recognizing focus. As currently written when you use the next or previous item buttons the message is displayed with the default zoom until the focus is switched like a left mouse click then a right mouse click. I'm not sure its the best work around but I added a line to the macro: AppActivate ("Inbox - - Outlook") just before the End If of the objInspectors_NewInspector section. This switches the Windows focus back to my inbox before the next message opens. With the focus moving back and forth the macro sets the zoom level as desired.

      Note: in the line I added what is between the quotes is the exact title of my inbox window. This will be different for everyone. Just use the title from your inbox window exact as it appears.

    • Keith says

      Correct, it does not work for the preview pane. That's the key there. It is a preview pane not a window. Again, I'm no Microsoft or VB expert. This macro hinges on new windows opening. There have to be commands or data fields that recognize when the preview pane changes (Microsoft does it. They change icons in the command ribbons when the preview pane changes) but I have not spent the time researching what they may be.

    • Diane Poremsky says

      At this time, it is not possible to affect the preview pane using VBA. Just because Microsoft can do it doesn't mean its possible for everyone to do it using VBA - Microsoft doesn't expose the features in the object model. You'd need to use Redemption, which is an application that exposes a lot of low level Extended MAPI objects and properties previously unavailable in VBA, but as of this writing, it does not expose any reading pane objects AFAIK.

    • Diane Poremsky says

      You select and delete the code from the VB Editor - press Alt+F11 to open the VB Editor, locate the macro then select all and delete.

  19. Kallia says

    Hi Diane,

    I'm using Microsoft Office 2011 for Mac. When I compose an email or reply on Outlook - the text is so small I have to strain my eyes even though it's on a 12 pt.
    I can't find any zoom function or anything.

    Please help me - in layman's terms :)


  20. user5309 says

    I'm lost at step 4. Paste the macro where? Is that code below the instructions the actual macro? I have it loaded in a "module" right now. I do step 5 ok then lost again at step 6. I did see where I could change the drop downs in the module headers and I found and selected "Application_Startup". I then click on "run" up top and get a compile error:
    "Only valid in object module"

    • Diane Poremsky says

      Yes, the code below the steps is the actual macro, in working order. You need it in ThisOutlookSession, not a module because it runs at startup and quit and when messages are opened.

  21. StoneMan says

    Hi, great post easy to follow, thank you. However, I had different expectations. This seemed to work only if I open (double click) an email in a new window. The window now defaults at a higher zoom Although this is nice, I was hoping for something that would change the zoom on the email preview pane. So when I click on an email, the preview pane would default to higher zoom. Is this possible? Thanks for your help.

    • Diane PoremskyDiane Poremsky says

      No, sorry, that is not possible. The zoom slide in the lower right can adjust the reading pane zoom, but it's not persistent.

  22. Cliff says

    This worked fantastically, thank you! I'm trying hard not to go back to 125% Windows scaling on my work laptop, and this was one of the worst persistent problems.

    I'm not much of a VBA guy (don't know many software devs who are), so I really appreciate not having to learn it just to fix a problem that shouldn't exist in the first place! Also, credit to a MakeUseOf commenter for recommending this post. Gotta love the Internets!

  23. jmp says

    Using Office 2013 including Outlook & Lync, the Macro works well for new windows, but not for the preview pane apparently - as was already said above.
    So I have 2 questions:
    1. is there a link we can use to submit this problem to MS? or to submit an improvment proposal? (like just having a small checkbox near the zoom slide to lock the zoom level in the preview pane)
    2. instead of using the Macro I tried using "windows DPI setting/set custom text size" but then it is making the Lync presence bullets in the distribution list desapear, any idea where that comes from?

  24. Huong Tran says

    Diane, I am using Windows 8.1 office 2013. The recipients get my email with error font and they can’t read. Please show me the way to correct it. (we use Vietnamese unicode font to communicate).

    • Diane PoremskyDiane Poremsky says

      That means they don't have the font installed on their computer or their email client doesn't support Unicode. Make sure you use one of the basic fonts included with windows, ut generally the problem is on the recipients side.

  25. Alex Lavar says

    Good morning! I do not have Microsoft Word in my Available References. Macros are enabled for both Outlook and Word. How do I get it to show up in this list?

    • Diane PoremskyDiane Poremsky says

      If should be in the references list, but if not, browse to your office installation folder and add MSWORD.OLB

  26. Eddie Fard says

    Hi Diane

    If the macro will works on outlook 2013 windows 7, could you please send the steps as how to do it. The above procedures is for outlook 2010.

  27. Mohammed Azharuddin says

    Hi Diane

    I'm a layman. Can you please help me in understanding how to do the following steps. I'm using Outlook 2013 64 bit.

    1. Set your macro security to Low.
    5. Set a reference to Microsoft Word in Tools, References
    Click in the Application_Startup macro and press the Run button to kick start it without restarting Outlook.


    • Diane PoremskyDiane Poremsky says

      1. File, Options, Trust Center, Macro Settings. Set it on the lowest option, to run all macros. Then restart Outlook.
      2. In the VBA editor, select tools, references and add a check next to the Word object library entry.
      3. In the VBA editor, place the cursor in the line Private Sub Application_Startup() (or in the line under it) and click the Run button on the Toolbar or press F8.

  28. GaryM says

    Thanks very much for this macro, Diane. I was actually doing fine with the default Outlook 100% zoom level, but only because I had the global Windows desktop scaling set to 125%, which is not recommended because not all programs display properly. This macro solves one of my few remaining (and most difficult) problems after recently going with the standard global Windows setting of 100%. Thanks for sharing your excellent work.

    • GaryM says

      P.S. I just now tested the preview version of Outlook 2016. The bad news is that it still displays Microsoft's same deafness to user requests for a persistent Zoom setting for reading emails, but the good news is that the macro solution given here seems to work just as well as it does on Office 2010 (and presumably 2013), once the correct "References" and "Macro Security" settings are adjusted. Thanks again.

Leave a Reply

Please post long or more complicated questions at OutlookForums by

If the Post Comment button disappears, press your Tab key.