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.
- Select File → Options.
- Click on Customize Ribbon from the left-hand menu.
- Under the "Customize the Ribbon" section, check the box next to Developer and click OK.
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).
- Select File → Options.
- Click on Trust Center from the left-hand menu.
- Click on the "Trust Center Settings" button.
- Click on Macro Settings from the left-hand menu.
- Select the option: Notifications for digitally signed macros, all other macros disabled and click OK.
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.
- Navigate to your main Office installation directory. Below are example default paths for Office 2016:
- 64-Bit Install: C:\Program Files\Microsoft Office\Office16\ (or C:\Program Files\Microsoft Office\root\Office 16\)
- Alternate Possibility: C:\Program Files\Microsoft Office\root\Office 16\
- 32-Bit Install on 32-Bit Operating System: C:\Program Files\Microsoft Office\Office16\
- Alternate Possibility: C:\Program Files\Microsoft Office\root\Office 16\
- 32-Bit Install on 64-Bit Operating System: C:\Program Files (x86)\Microsoft Office\Office16\
- Alternate Possibility: C:\Program Files (x86)\Microsoft Office\root\Office 16\
- 64-Bit Install: C:\Program Files\Microsoft Office\Office16\ (or C:\Program Files\Microsoft Office\root\Office 16\)
- Locate the file named SELFCERT.EXE and double-click it to launch.
- Read the notice and then enter a certificate name, such as your name or OfficeZoomMacro, then click OK.
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.
- Back in Outlook, click on the Developer tab and then click on the Visual Basic button (ALT+F11).
- In the Project Explorer on the left-side, select Project1 → Microsoft Outlook Objects → ThisOutlookSession to open the script editor for the internal Outlook macro.
- 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):
- Visual Basic For Applications
- Microsoft Outlook 16.0 Object Library
- OLE Automation
- Microsoft Office 16.0 Object Library
- Microsoft Word 16.0 Object Library
- 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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
'General Object Definitions Dim ZoomLevel As Integer Dim WithEvents oInspectors As Outlook.Inspectors Dim WithEvents oInspector As Outlook.Inspector Dim WithEvents oMailItem As Outlook.MailItem 'FUNCTION: Application Startup Private Sub Application_Startup() '############# SET DEFAULT ZOOM LEVEL BELOW ############# ZoomLevel = 175 'Set Inspector Object Set oInspectors = Application.Inspectors End Sub '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 End Sub 'FUNCTION: Close Inspector Private Sub oInspector_Close() 'Object Clean-up Set oMailItem = Nothing End Sub 'FUNCTION: New Inspector Private Sub oInspectors_NewInspector(ByVal Inspector As Inspector) 'Compare inspected item to see if it is of Mail type If Inspector.CurrentItem.Class = olMail Then ' Set oect references to current mail item Set oMailItem = Inspector.CurrentItem Set oInspector = Inspector End If End Sub 'FUNCTION: Application Quit (Ignored in Latest Outlook Versions) Private Sub Application_Quit() 'Object Clean-up Set oInspector = Nothing Set oInspectors = Nothing Set oMailItem = Nothing End Sub |
- Let's add the digital signature we created earlier. Click Tools → Digital Signature.
- 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.
- 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."]
- With the script saved, close the Visual Basic editor.
- 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.
- Make sure you have the desired folder selected (e.g., Inbox)
- Select View → View Settings.
- Click the "Other Settings" button.
- Click on the "Column Font" and "Row Font" buttons to adjust the text size and formatting, such as increasing the size to 16 pt.
- 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.
- 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.
- 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.
- 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.
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.
- Make sure you have the desired folder selected (e.g., Inbox)
- Select View → View Settings.
- Click the "Conditional Formatting" button.
- Select the desired view rule such as "Unread Messages" and then click the "Font" button and adjust the text accordingly.
- 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.
- 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 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.
- Select File → Options.
- Click on Mail from the left-hand menu.
- Click on the "Stationary and Fonts" button.
- Modify the "New mail messages," "Replying or forwarding messages," and "Composing and reading plain text messages" fonts as desired.
- Click OK and then click OK again to close the Options window.
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
into
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.
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!
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.
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).
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..
Best,
Matthias
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!
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
........................................
Never mind, i found my error. I forgot to activate Mic. Word 16.
2 millions thanks for this post buddy!
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 (http://mattpilz.com/how-to-increase-default-zoom-level-in-outlook-2016/#comment-13534) 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.)
Thank you for this well-crafted and thorough solution for this much-needed problem. Very helpful. Great work!
Thank you! I have been trying to figure this out for many years!
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!
Hi. This macro should work with each message you open provided that you close the previous message. If you are referring to using the previous/next buttons or keyboard shortcuts to navigate between messages, please see my other comments to others on this topic where I provide a workaround (e.g., http://mattpilz.com/how-to-increase-default-zoom-level-in-outlook-2016/#comment-13534).
Hello
Is there an easy way to add the Reading Pane view so that it stays constant on zoom?
Evie
Hi Evie, unfortunately Outlook doesn't allow direct interaction with the reading pane for automated zooming. It is disappointing that Outlook still has such severe limitations for accessibility, with no easy way to set default zoom levels.
The best native solution is as described in this tutorial, so that the text will be zoomed when you open each individual message. It may be possible to rig up an automated zoom system for the reading pane by using a macro script utility such as AutoHotKey; if I have a little time I will see about writing a script for that but it's a pretty advanced topic.
Thanks for pointing out the ctrl -> can easily set the zoom within a given email. I disliked the inefficiency of having to select Format Text, find no option for 125%, and have to use the up button to increase the scale to 125%... I had actually used the standard method of ctrl -> in other apps, just too dump to try it in Outlook!
thank you again! I will reuse this tip countless times...
Works great with Outlook 2016 (32 bit) running on Windows 10 (64). Thank you for the detailed explanation. In my case the selfcert.exe was found in:
C:\Program Files (x86)\Microsoft Office\root\Office16
and not as listed above.
~Moshe
In step 9 i get compile error: Invalid outside procedure
How do I fix this?
Never mind found my mistake.
Thank you so much. Very clearly written and VERY helpful!
It used to work flawlessly. Now it only works when I reply to an email. When I double click on the email, it opens and does not zoom. Outlook 2016.
After you double-click an email to open it, try right-click on the message body and then press ESC (or left-click off of the pop-up). Does the zoom update at that point?
Alternatively, double-click to open the message and then tap your Windows key twice. If that works, then it seems something is conflicting with the context of the message until it regains focus. You could try redoing the script in the event that any part of it somehow became displaced. I haven't experienced any similar issue myself and don't know of any update that would've broken it.
I redid everything from scratch and all is working again.
Okay. I tried all those attempts but nothing worked. I will redo the script and see what happens.
Thanks Matt , It works Great
Thanks for this macro. It was easy to create and worked the very first time. Well written and easy to find on google. BTW, I have Office 2010 (Outlook 2010) and it worked straight away.
All the best,
Tom Eckrich
Indianapolis
I had the same problem as egizzi where it worked for a while then stopped working when opening e-mails for reading (it still worked when replying). I walked through all the steps again and it started working. It's possible that it got knocked out when my company pushed some updates out to our computers.
Is it possible to advance the macro for Meeting request zoom level?
I have had this annoyance over zoom levels for a long time. Thank you for your solution. It works great!
I got through all the steps but when I re-opened Outlook and clicked on a new message, the Visual Basic Applications window popped up and it told me I had a problem with Line 19 ("Private Sub oInspector_Activate()"). Have you seen this before?
Thanks. This is a big help from having to click the ZOOM every time I opened an email or scoot my face closer to the screen to read. Perhaps its time to go back and get a new prescription for my glasses.
Thank you Matt!
This was super helpful - now if Microsoft will only allow us to zoom the reading pane 😡
You're welcome, Jim. It is really upsetting and surprising just how little Microsoft has done for accessibility in their commercial programs. Doesn't feel like Outlook has improved at all on this matter for more than 15 years. Another part of Outlook that can't readily be customized and is very difficult for those with seeing problems to read is the To/From/Contacts areas. You'd think it'd be something easily configurable at least to make the fonts bold and black, but it is a far more complex endeavor than that to even remotely alter those areas.
Hi Matt,
I tried your solution and it works great, however, I would now like to remove this functionality.
How to do this? I do not see any Macros installed in the developer --> Macros list for me to delete.
So, how to remove this addition again ?
Regards,
Arjan
=-
Never mind... I removed the code, and also removed the digital signature via run --> mmc (management console)
That should do the trick to remove everything that was installed.
i added this but now the vba pops up and i get this error message: Compile error: Invalid attribute in Sub or Function
Hi John, it is possible that a character inadvertently got added when you copied and pasted, or otherwise weren't in the right spot. You can try following the steps again first by removing the code you added and starting over. A few others indicated similar problems but then tried it again and it worked on their second attempt.
Pingback: How to permanently increase the zoom size of email in Outlook using a VBA macro
Matt,
It seems Microsoft has changed the location of "SelfCert.Exe" since you posted the above in Step #3 for a 64 bit install. To find it I went to C:\Program Files\Microsoft Office\root\Office 16 and then I searched for SelfCert.Exe . {Notice the insertion of "root" in the string}. When SelfCert.Exe appeared I double clicked on it and proceeded with the remainder of your steps. Worked just fine!
Thanks Bob - I have updated the post to include that as a possible alternate path as it does seem certain installs place the Office contents within that "root" path instead of the base Microsoft Office folder.
It is still ludicrous that we have to resort to this level of sophistication and custom solutions just to bring some level of accessibility to Outlook in the year 2018!
Thanks for this detailed tutorial. Unfortunately, I cannot get this to work. I followed the instructions through Step 4, line 6. When I choose "Tools" - "Digital Signature" the resulting box is populated with following information "The VBA Project is currently signed as -- "Certificate name: [No certificate]. I can then select "Choose", but when I do, there is no digital signature to choose. I just get a box showing "Windows Security - Outlook.exe -- select a certificate" but there are none to select. There is no button for "More" and the only choice is "Cancel." I have created the digital signature 3 separate times (with three separate names) by using the Selfcert.exe program. Still no digital signatures show up.
Could his be because I am on a work network and the network is set up in some way to prevent me from doing this?
Matt,
Not really sure why the macro cert did not take on the first attempt, but adding it after re-opening Outlook and saving both times fixed the problem. Astounding solution for those of us who are visually impaired.
On another response you mention adding additional code in the section starting at Line 31 to allow usage of the Next/Previous buttons.
SendKeys "^{ESC}", True: DoEvents: SendKeys "^{ESC}", True: DoEvents
Would it be correct to assume that the code should be inserted on line 35, or between 33 & 34?
Thank you.
Hi Robert,
Glad you got it working, sometimes the way Outlook behaves it is easy to end up in the wrong scripting area or have other conflicts until restarting the software.
That additional code should be added within Private Sub oInspector_Close() - so in my code snippet above it'd be on line 32.
I'll give it a try.
Thanks again.
Hi Matt,
Something is not right.
I open the top message by double-clicking: It opens perfectly at the zoom setting.
Click the down arrow: Message opens at normal 100%.
Click down arrow again: Start Menu pops up.
Click down arrow again: Message opens at preferred zoom (sometimes).
I'm getting random results trying on Inbox folder depending on whether message is Read or Unread.
If I close the first message and double-click on another message the Start Menu opens.
Here's the code from my instance. I think I'm going to remove that extra line for now.
'FUNCTION: Close Inspector
Private Sub oInspector_Close()
SendKeys "^{ESC}", True: DoEvents: SendKeys "^{ESC}", True: DoEvents
'Object Clean-up
Set oMailItem = Nothing
End Sub
I just wanted to say Thank you. I work for the government and we do not get admin access to our machines. I just got a laptop refresh and moved from Windows 7 Enterprise to Windows 10. Hooray, right?!! More like, "Welcome to the world of Blurry Text." The only solution they provided was to go with the native resolution of the laptop which had my 42 year old eyes begging for mercy. I didn't want to give up the screen real estate, but I needed a way to JUST zoom the text. Your instructions were clear, life-saving, and they worked without prompting for admin credentials. Great job, sir.
Matt: Thank you very much for this great coding. I'm a heavy mainframe programmer and mid-level SAS programmer (& very light with ORACLE and UNIX). Lately, I'm needing the font to be larger--my eyes are getting bad; and I have to go thru 100's of emails per day across 3 INBOX'es and I'm tired of doing ZOOM. I had been searching for coding like this for years as MICROSOFT does not have a way of permanently changing the default ZOOM (even under W10). I coded this and tested it on W7 and on W10--it works. btw: we don't need to code go to sleep for 1 second and then key two CNTL + ESC--it doesn't work. You said there's no way to this to run when we scroll forward/backward thru emails ("reading pane"). Well, since I really needed this functionality, I found a way. Here it is: After making the VB script, you have to also make a blank MACRO with the same name as the certificate name; I called mine OUTLOOK_OVERRIDE_DEFAULT_EMAIL_ZOOM; then, we have to add this MACRO to the quick access toolbar. Then, after we bring up our re-sized email and click on the PREVIOUS or NEXT email arrows, we will return to 100% (not what we want); then after we click on this blank MACRO (or double click on the Quick Access Toolbar dropdown), the blank MACRO will point to and run the VB Script MACRO and we will get bigger sized email (the default of 100% email view will be overridden) which is what we want. I chose 140%: that one worked out well for me. Aside: I have my reading pane turned off. Hope this procedure helps out other people with bad eyes like mine. PFA my contact info in case you need to contact me. Take care.
AL DIOVANNI
C - XXX.XXX.XXXX
H - XXX.XXX.XXXX
XXXXXXXXXX@XXXXXXXXXX
Matt: As I emailed you just now: It doesn't work for WEBEX email invitations which I get alot of on a daily basis. Any suggestions ? Thanks Matt !
AL DIOVANNI
C - XXX.XXX.XXXX
H - XXX.XXX.XXXX
XXXXXXX@XXXXXXXXX
Matt ,
1. As per your spex: I successfully adjusted the Main Calendar View font size; it works; thanks !
2. I just finished testing your new version on all of my 3 INBOX'es (W7 and W10); and it works; thanks !
3. I am now getting a strange (good) phenomenon when the WEBEX meeting invitations is in the email "loop" or "chain":
I navigate into the WEBEX meeting invitation and automatically get my desired email ZOOM resizing (140% in my case).
Then when I navigate from the WEBEX meeting invitation into the previous or next email in the chain (via clicking on the PREVIOUS arrow or NEXT arrow, respectively), I continue to get my desired email ZOOM resizing (!?!)
Then when I repeat the operation (PREVIOUS arrow or NEXT arrow), the email ZOOM sizing reverts back to the default 100%
So whatever you did for the WEBEX meeting invitation email case, maybe there's a way to clone it into the regular email case ?
Thanks again Matt.
AL DIOVANNI
C - XXX.XXX.XXXX
H - XXX.XXX.XXXX
XXXXXXXXX@XXXXXXXXX
Hi Matt,
Is there a way to turn off Automatic Column Sizing on default level across all folders and sub-folders? Could this be using VBA or any other way?
Hi Dinomax, there are a few simple ways to do this without any scripting or macros. You can apply the setting to a single folder and then tell Outlook to apply that same setting across all mailboxes and folders within a couple of clicks. You can alternatively modify the default view with these settings to automatically inherit in the future. The first part:
1.) Disable the automatic column sizing option in one of your Outlook mail folders, so the view is how you want it.
2.) Select View > Change View > Apply Current View to Other Mail Folders.
3.) Check all of the root level Mail Folders and also check Apply View to Subfolders.
4.) Click OK.
Now every existing folder and subfolder will reflect this change. You may have to repeat this process once for IMAP folders and a second time for local Outlook folders if you have a mix of both.
To actually alter the default view so that these settings should inherently apply to everything:
1.) Select View > Change View > Manage Views.
2.) Click on Compact and then select Modify > Other Settings > Uncheck Automatic Column Sizing (and any other options you want). Then OK.
3.) Repeat this for the Single and Preview views as well if you wish to ensure that all default views will have the automatic column sizing disabled.
You will still want to perform the original steps to ensure all existing folders apply the settings, but future ones should then also be set. Hope this helps.
Hi Matt,
I can't thank you enough for for your reply and all the help. I was unaware of managing views in the recently updated outlook on my machine. However, based on your comments above I have been able to resolve my issue.
Thanks again. Keep up the good work. All the best.
Hi Matt,
When I Click Tools → Digital Signature → Choose, I see a digital signature (based on my name) already there. When I open the "certmgr", it appears under the 'Personal' section.
Can I just use that digital certificate, or is a new unique one required for the macro to work properly?
Thanks.
Hi Dan, that certificate should work fine as long as it is still valid. Worst case it won't and then you can just create a new one as described - and you can change the certificate at any time by going back to the script and selecting Tools > Digital Certificates > Choose > More Choices.
Hi Matt,
Thanks very much for solving a problem faced by many people growing older with weakening eye-sight. MS should consider to add this feature in future versions.
Thanks again!
Regards,
Binay
Works great. Microsoft shall pay you $1MM for this page!
I've had this fix working fine in Outlook 2010 in Windows 10 v 1803. I just upgraded to v 1809 and this fix now only works if I set macro security to "Notifications for all macros" which results in nag screen every time I start Outlook 2010.
I double checked the signature and can't figure out why it no longer works as before. Any advice?
I completed the "The Right and Automated Way to Zoom Messages" procedure, but upon "saving" my code from the VBA editor (task #7 under "Step 4 - Write the Macro," above, the warning "there was a problem with the digital certificate. the vba project could not be signed ...signature discarded" appeared. I finally fixed this by following https://stackoverflow.com/a/48411874/5025060. Basically, run Word as Administrator, save the macro that way, exit Word, run Word AGAIN as Administrator, and a window should pop-up prompting you about the newly signed macro – click "remember and don’t prompt again."
thanks C Wilson this fixed my issue
Re: Expecting a solution for the Reading Pane as well 🙁
Hi Matt,
Thanks and congrats for this excellent solution and tutorial. Same as @Hans, @Evie, @Jim, @Al Diovanni and possibly the many others I appreciate if someone propose a solution to adjust default zoom size of the reading pane.
Regards,
Hi,
thanks for the macro, although I also search for a soluation that is working for the reading pane, at least a double click is now working. My first digital signature didn't work (after starting outlook I didn't got the notification about the signed macro), but I don't know why. I did everything as listed. I simply created a second digital signature and repeated the steps and the second time it was working and I could allow all macros from this signature in the notification.
Thank you for the macro
Hi Matt,
The following link "https://superuser.com/questions/298446/how-can-i-set-the-zoom-of-the-outlook-reading-pane"
provide a way to increase the zoom also in the reading pane.
Is there a way to merge your Macro and this one?
That would provide an "all-round" solution .
Just an idea.
Kind Regards,
Michel
I'm getting a Compile error message on the second line below (Dim WithEvents oInspectors As Outlook.Inspectors) that this is only valid in an Object Module.
Is there a fix for this?
'General Object Definitions
Dim ZoomLevel As Integer
Dim WithEvents oInspectors As Outlook.Inspectors
Dim WithEvents oInspector As Outlook.Inspector
Dim WithEvents oMailItem As Outlook.MailItem
Thanks!
is it possible to keep the zoom with outlook 2019 ?
https://support.office.com/fr-fr/article/le-texte-de-mes-messages-%C3%A9lectroniques-est-plus-grand-ou-plus-petit-qu-habituellement-351ef767-00c1-4b9f-8744-1391dcb8f974
21/5000
Thanks for your help
US link : https://support.office.com/en-us/article/the-text-of-my-email-messages-is-larger-or-smaller-than-usual-351ef767-00c1-4b9f-8744-1391dcb8f974
Thanks, Matt! That's great.
At first, I repeatedly got an "Compile error: Invalid attribute in Sub or Function." However, I had another macro already in ThisOutlookSession. When I moved that macro below Matt's text, everything worked great.
This information is unbelievably wonderful. I have been searching for so many options to lock the zoom. I'm using outlook 2016 at my office and the natural font is just too small in the receiving emails. I can't believe how simple and accurate your steps were. I truly appreciate your help.
Thanks Matt! I got the compile error as well since I had other macros already. Moving the four Dim statements to the top (below Option Explicit for me since I have that turned on) fixed the error.
Many thanks for a brilliant tutorial. I don't write VBA and this will save my sanity and eyesight as the whole thing has caused me eyestrain, working from home on a laptop and a monitor where I needed this.
Hi Matt
Is there a way to zoom to "page width" rather than specifying a percentage (70% or 91%) in the macro code? Also can I assign a keyboard shortcut so the macro will be applied only when I have the message opened and press the key combination rather than applying the zoom for all messages by default?
Regards,
Anish
i keep getting the error of the digital certificate when saving the project , i have tired creating a different certificate but i keep getting the same error , the windows version is 1809 and the office is 2016
Matt, thanks for a comprehensive article.
I have approached this problem from a different angle, which your readers are welcome to try: I have bought myself a 27" monitor with 1920 * 1080 resolution. I recognise that it will be good for a few years and then the continuing deterioration of my eyes will overtake that fix, but maybe MS will have sorted this issue themselves by that time. I have found that the image is sharp enough for ordinary office work (Word, Excel and Outlook). The 27" monitors are a bit more expensive, but not too bad. A bigger problem can be fitting the larger device onto my (physical) desktop. Cheers.
Chris, thank you for the comment. In discussing monitor size with the friend that I was helping on this issue, we did weigh the benefits of a 27" vs. 24" - 1080p on a 27" does look a lot larger at the base 100% scale so I agree that is a solid benefit. One potential drawback is that the pixel density is lower on a 27" vs 24" at the same resolution so edges of characters can end up looking a bit pixelated if viewing very close, which is why it is also common to see 1440p 27" monitors these days that have more dense pixels for sharper text display. that said, I do have a normal 1080p 27" at my house and one family member's, and must say it is enjoyable to view compared to th 24" I typically use.
Microsoft is increasingly shifting to it's web-based platform (Outlook 365 / Live / Exchange Server) which nicely scales based on your browser's zoom level and other accessibility options. So in the future it may be more logical to pivot to the webmail version of Outlook, since I don't personally see Outlook ever correcting this problem for desktop. Below is a screenshot taken from Outlook.com and you can see how nice the typography is (I have the browser at 150% zoom).
This is WONDERFUL! Thank you, so very much.
I've added this link to our internal tech support wiki, for other colleagues who may need it.
Any clues how to do the automation of hiding message header?