This problem has existed for many years. I'm using Outlook (Office 365) on Windows 10 on many computers (laptops, main desktop PC etc.) Using the same Office 365 Business account on all computers.
In View / "Change View" I can choose a good view for Inbox, with the correct width for Subject etc. But, since all computers have different desktop resolutions, I need to have many Views saved (saving views has its own bugs, by the way).
I save and use a View called MainDesktop for one computer (high resolution screen). Laptop1 for another (low resolution screen). Now I open Outlook on the main computer, looks fine. Then I open Outlook on laptop. Now the MainDesktop View is forced on the laptop, looks awful. Then, changing to Laptop1 and now the main computer is forced to use the Laptop1 view.
As I don't expect Microsoft to fix this problem, what is a good workaround? I didn't find a way to open Outlook with a certain view with a command line parameter, for example. The last resort would be to use AutoHotkey to change the view every time Outlook is ran, but I hope there's a better solution.
42 Answers
As I know, if you are using Exchange email account in Outlook client, I'm afraid that it is by design that Outlook will always automatically sync views between different clients. Besides, according to my tests, if you change the language of your Outlook client and then create a new Outlook profile to re-add your email account, the view settings may not be synced with other Outlook clients of different language versions. Just try and see if this could help.
I made an AutoHotkey solution to this problem. Pretty whacky that we have to do this ourselves, it makes no sense that Outlook forces same pixel size views on completely different screen resolutions.
ChangeViewOutlook(keysDownRight:="{Down}{Right}") ; default is Home, Down, Right, Enter
{ Sleep 1 WinActivate ahk_class rctrl_renwnd32 ahk_exe outlook.exe ; the focus easily goes elsewhere, thus we have to make sure Outlook gets it temp=9000 ; timer in ms (actual time is longer due to possible slowness of this code) temp2=0 Loop { IfWinExist, ahk_class rctrl_renwnd32 ahk_exe outlook.exe break Sleep 10 temp2+=10 If (temp2>=temp) { TrayTip Couldn't open Outlook,`n Return } } WinActivate ahk_class rctrl_renwnd32 ahk_exe outlook.exe WinWaitActive ahk_class rctrl_renwnd32 ahk_exe outlook.exe,, 8 If ErrorLevel { TrayTip Couldn't open Outlook,`n Return } WinActivate ahk_class rctrl_renwnd32 ahk_exe outlook.exe Send !vcv{Home}%keysDownRight%{Enter} ; View, Change View, move the selector Send !h{Esc 2} ; go back to tab Home and clear the alt-tip-letters
}
+!h:: ; Microsoft Outlook launch/focus + Change View according to computer (workaround for Outlook's fixed view problem) ; Note! You have to launch Outlook with Win10_Open_Outlook.vbs when clicking an icon to Open Outlook ; when opening Outlook by mouse instead of keyboard. Otherwise the Change View won't be done. SetTitleMatchMode, RegEx WinActivate .*Outlook ahk_class rctrl_renwnd32 IfWinExist, .*Outlook ahk_class rctrl_renwnd32 { WinActivate .*Outlook ahk_class rctrl_renwnd32 } Else { If InStr(A_ComputerName, "MyComputer1", false) ; false here means case insensitive { Run, "C:\Program Files (x86)\Microsoft Office\root\Office16\OUTLOOK.EXE" ChangeViewOutlook("{Down}{Right}") } Else If InStr(A_ComputerName, "MyComputer2", false) { Run, "C:\Program Files (x86)\Microsoft Office\root\Office16\OUTLOOK.EXE" ChangeViewOutlook("{Down}{Right 3}") } Else If InStr(A_ComputerName, "MyComputer3", false) { ComObjCreate( "Shell.Application" ).Windows.FindWindowSW( 0 , 0 , 8 , 0 , 1 ).Document.Application.ShellExecute( """C:\Program Files\Microsoft Office\root\Office16\OUTLOOK.EXE""" ) ; on certain setups, we have to load as non-elevated, not as an admin, because otherwise the quicksearch and drag'n'drop is crippled (this assumes that the .ahk was ran as admin) ChangeViewOutlook("{Down}") } Else { Run, "C:\Program Files\Microsoft Office\Office15\OUTLOOK.EXE" ChangeViewOutlook("{Down}{Right 2}") } } SetTitleMatchMode, 1 ; = STARTS WITH (back to default) ReturnAnd then you replace this as the Outlook icon's target, Win10_Open_Outlook.vbs:
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.SendKeys "+%h"
' Note: VBScript doesn't support # (WinKey) but +^ work fine, and alt is % (shift is +).And thus you can use any number of computers with Outlook, using the same exact profile, still having different custom Inbox views for each computer (this code changes the view quickly according to the computer name). So you have to understand a bit of the code to edit it to match your systems. And you have to create and save views for each computer. Name them according to the computer name. All your Outlooks will then show all computers' views in the Change View selector. Views are then selected there with {Down}{Right}{Enter} or similar.
After you configure this correctly, you can just open Outlook on each computer and the script will very quickly change the view to the right one just after Outlook has loaded.
1