Update 2017-01-29: I wrote a small program, if you don't want to do any changes in the registry: excel-on-2screens
Excel on 2 screens
Ever had the problem to open two excel sheets on two different monitors?
Just once
The basic solution is to start an new instance of excel. Per default excel opens sheets in the same window if you double-click on a *.xls-file. So what to do? If you need it only occasionally, one of these tricks will work for you:
- press
Win+R
, enter"C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXE"
and hit ENTER - click on
Start
and search forExcel
- shift+click on the icon in the taskbar
- right-click on the icon in the taskbar and click on
Excel
and then File / Open
...
Permanent
If you want it all the time, you need something permanent that switches the default from 'single instance' to 'new instance everytime'. I've stumbled over Open Excel Spreadsheet in New Window for Each File and many similar recommendations:
- open regedit
- go to
HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\Open
- delete or rename
command
andddeexec
- create a new command
EXCEL.EXE /e "%1"
This approach has some severe problems from the sysadmin's point of view:
- It requires admins rights!
- affects all users (there might be computers with more than one user and some may don't like it).
- might not survive Office patches/updates (and surely not a repair/re-install)
- removing the changes requires to backup & restore the previous values
So my first approach was to move the reghack from HKEY_LOCAL_MACHINE to HKEY_CURRENT_USER (For the record: HKEY_CLASSES_ROOT is a merged view of HKCU|HKLM\Software\Classes
).
Hurray, all three problems solved!
Well... except it doesn't work. Why?
Hint: merged view!
HKCU overrwrites HKLM (and so you can't remove values). The ddeexec
key overrules the command
if an excel instance is already running. ...and so comes:
My solution
Create another default action!
- create
HKEY_CURRENT_USER\Software\Classes\Excel.Sheet.12\shell\Open2
- set the default value to
Excel /e "%1"
inHKEY_CURRENT_USER\Software\Classes\Excel.Sheet.12\shell\Open2\command
- set the default value in
HKEY_CURRENT_USER\Software\Classes\Excel.Sheet.12\shell
toOpen2
Now Windows sees in HKCR the default action Open2
with no ddeexec
-key!
- no admin rights required!
- only current user affected - every user can choose!
- survives Office patches!
- starts a new excel instance everytime
If you don't want this reghack anymore, simply delete HKEY_CURRENT_USER\Software\Classes\Excel.Sheet.12
.
Update 2017-01-29: I wrote a small program, if you don't want to do any changes in the registry: excel-on-2screens
Here is a *.reg-file for copy&paste:
REGEDIT4 ;-- 2015-01-07 by www.niksoft.at ;-- Note: *.xlsx points to Excel.Sheet.12 ; [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.xlsx] ; @="Excel.Sheet.12" [HKEY_CURRENT_USER\Software\Classes\Excel.Sheet.12] [HKEY_CURRENT_USER\Software\Classes\Excel.Sheet.12\shell] @="Open2" ;-- Wanna label the new default action in your language? Here is the place: [HKEY_CURRENT_USER\Software\Classes\Excel.Sheet.12\shell\Open2] @="Öff&nen" ;-- Please change the path according to your installation: [HKEY_CURRENT_USER\Software\Classes\Excel.Sheet.12\shell\Open2\command] @="\"C:\\Program Files (x86)\\Microsoft Office\\Office14\\EXCEL.EXE\" /e \"%1\"" ;-- and now the same for *.xls ; [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.xls] ; @="Excel.Sheet.8" [HKEY_CURRENT_USER\Software\Classes\Excel.Sheet.8] [HKEY_CURRENT_USER\Software\Classes\Excel.Sheet.8\shell] @="Open2" [HKEY_CURRENT_USER\Software\Classes\Excel.Sheet.8\shell\Open2] @="Öff&nen" [HKEY_CURRENT_USER\Software\Classes\Excel.Sheet.8\shell\Open2\command] @="\"C:\\Program Files (x86)\\Microsoft Office\\Office14\\EXCEL.EXE\" /e \"%1\""