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 for 'Excel'
  • shift+click on the icon in the taskbar
  • right-click on the icon in the taskbar and click on 'Excel'

screenshot

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' and 'ddeexec'
  • 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"' in 'HKEY_CURRENT_USER\Software\Classes\Excel.Sheet.12\shell\Open2\command'
  • set the default value in 'HKEY_CURRENT_USER\Software\Classes\Excel.Sheet.12\shell' to 'Open2'

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\""