Community Pick: Many members of our community have endorsed this article.

Option to open excel 2007 documents in a new instance

Published:
Updated:
Problems we all know excel has
Many people are tired of the way excel workbooks are affected by every other workbook you have opened. When you calculate one, they all calculate.  Excel acts as though they are inter-dependent when they really aren't.  Well with a simple registry injection, you can add a right click menu to the shell that lets you open excel in a new instance instead of just opening another excel workbook in the same window as any existing one.

Another great side effect is that you can finally view documents side by side instead of awkwardly having to un-maximize windows within the application and arrange them. Having multiple excel instances in infinitely useful. If one workbook crashes, the rest will remain intact! This is the perfect solution for workplaces that thrive off a variety of excel applications and frequently experience mass crashes and restores.

The following solution is adapted from a general solution involving editing the advanced properties under explorer folder options for file types. I went directly to the source and created registry editing files that would add the new context menu, and even make it the default behaviour if desired.

The end result:
Excel files with the new menu item.
Instructions
If this is something you want, then copy the attached code into a .reg file, or download the registry editing files. Note that there are 4 variations - one adds the new menu option and makes it default, one just adds the menu option, but leaves "Open" as the default. The last file is used to remove the changes from the registry and put everything back how it was before.

Note that you can use the files in any order. If you add the menu option, then decide later you want it to be the default behaviour, you can run the first file after the second one. Similarly, if you want to undo making it the default behaviour, you can run the "Remove changes" file and then run the second file to add the menu item back without the default.

What to expect
A quick tip - if you are having problems copy pasting, remember that excel advanced formatting only copy pastes between separate workbooks if they are in the same instance (probably why Microsoft made same-instance opening the default behaviour.) If you need to copy paste between two workbooks, then you should be opening them in the same instance, so select the normal 'open' for these, otherwise, you should be happy with separate instances.

Another note is that separate instances of excel consume more memory. If you have enough workbooks open that this affects you, though, then you'd probably be experiencing issues in a single application instance anyways.

Download
Here's the required registry files: Open-In-New-Excel-Instance.zip

The code contains the same three entries for each format associated with Excel. If you understand what I'm doing here, you should have no problem adding or removing formats based on whether you have another version of excel, or different formats that you want behaving this way.
Windows Registry Editor Version 5.00 
[HKEY_CLASSES_ROOT\Excel.Backup\shell]
@="Open_in_New_Excel_Instance" 
[HKEY_CLASSES_ROOT\Excel.Backup\shell\Open_in_New_Excel_Instance]
@="Open in New Excel Instance" 
[HKEY_CLASSES_ROOT\Excel.Backup\shell\Open_in_New_Excel_Instance\command]
@="\"C:\\Program Files\\Microsoft Office\\Office12\\EXCEL.EXE\" \"%1\"" 

[HKEY_CLASSES_ROOT\Excel.OpenDocumentSpreadsheet.12\shell]
@="Open_in_New_Excel_Instance" 
[HKEY_CLASSES_ROOT\Excel.OpenDocumentSpreadsheet.12\shell\Open_in_New_Excel_Instance]
@="Open in New Excel Instance" 
[HKEY_CLASSES_ROOT\Excel.OpenDocumentSpreadsheet.12\shell\Open_in_New_Excel_Instance\command]
@="\"C:\\Program Files\\Microsoft Office\\Office12\\EXCEL.EXE\" \"%1\"" 

[HKEY_CLASSES_ROOT\Excel.Sheet.12\shell]
@="Open_in_New_Excel_Instance" 
[HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\Open_in_New_Excel_Instance]
@="Open in New Excel Instance" 
[HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\Open_in_New_Excel_Instance\command]
@="\"C:\\Program Files\\Microsoft Office\\Office12\\EXCEL.EXE\" \"%1\"" 

[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell]
@="Open_in_New_Excel_Instance" 
[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Open_in_New_Excel_Instance]
@="Open in New Excel Instance" 
[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Open_in_New_Excel_Instance\command]
@="\"C:\\Program Files\\Microsoft Office\\Office12\\EXCEL.EXE\" \"%1\"" 

[HKEY_CLASSES_ROOT\Excel.SheetBinaryMacroEnabled.12\shell]
@="Open_in_New_Excel_Instance" 
[HKEY_CLASSES_ROOT\Excel.SheetBinaryMacroEnabled.12\shell\Open_in_New_Excel_Instance]
@="Open in New Excel Instance" 
[HKEY_CLASSES_ROOT\Excel.SheetBinaryMacroEnabled.12\shell\Open_in_New_Excel_Instance\command]
@="\"C:\\Program Files\\Microsoft Office\\Office12\\EXCEL.EXE\" \"%1\"" 

[HKEY_CLASSES_ROOT\Excel.SheetMacroEnabled.12\shell]
@="Open_in_New_Excel_Instance" 
[HKEY_CLASSES_ROOT\Excel.SheetMacroEnabled.12\shell\Open_in_New_Excel_Instance]
@="Open in New Excel Instance" 
[HKEY_CLASSES_ROOT\Excel.SheetMacroEnabled.12\shell\Open_in_New_Excel_Instance\command]
@="\"C:\\Program Files\\Microsoft Office\\Office12\\EXCEL.EXE\" \"%1\"" 

[HKEY_CLASSES_ROOT\Excel.Template\shell]
@="Open_in_New_Excel_Instance" 
[HKEY_CLASSES_ROOT\Excel.Template\shell\Open_in_New_Excel_Instance]
@="Open in New Excel Instance" 
[HKEY_CLASSES_ROOT\Excel.Template\shell\Open_in_New_Excel_Instance\command]
@="\"C:\\Program Files\\Microsoft Office\\Office12\\EXCEL.EXE\" \"%1\"" 

[HKEY_CLASSES_ROOT\Excel.Template.8\shell]
@="Open_in_New_Excel_Instance" 
[HKEY_CLASSES_ROOT\Excel.Template.8\shell\Open_in_New_Excel_Instance]
@="Open in New Excel Instance" 
[HKEY_CLASSES_ROOT\Excel.Template.8\shell\Open_in_New_Excel_Instance\command]
@="\"C:\\Program Files\\Microsoft Office\\Office12\\EXCEL.EXE\" \"%1\"" 

[HKEY_CLASSES_ROOT\Excel.TemplateMacroEnabled\shell]
@="Open_in_New_Excel_Instance" 
[HKEY_CLASSES_ROOT\Excel.TemplateMacroEnabled\shell\Open_in_New_Excel_Instance]
@="Open in New Excel Instance" 
[HKEY_CLASSES_ROOT\Excel.TemplateMacroEnabled\shell\Open_in_New_Excel_Instance\command]
@="\"C:\\Program Files\\Microsoft Office\\Office12\\EXCEL.EXE\" \"%1\"" 

[HKEY_CLASSES_ROOT\Excel.Workspace\shell]
@="Open_in_New_Excel_Instance" 
[HKEY_CLASSES_ROOT\Excel.Workspace\shell\Open_in_New_Excel_Instance]
@="Open in New Excel Instance" 
[HKEY_CLASSES_ROOT\Excel.Workspace\shell\Open_in_New_Excel_Instance\command]
@="\"C:\\Program Files\\Microsoft Office\\Office12\\EXCEL.EXE\" \"%1\""

Open in new window

10
23,624 Views

Comments (8)

sunstonecircuitsNetwork Admin

Commented:
This works for Excel 2007 in Win7.  I have Excel 2010 in Win7.  It does not work

Author

Commented:
Yes, this was only designed to work with Excel 2007. As stated, you should have no problem adding or removing formats based on whether you have another version of excel. Note that all the registry entries refer to the program run path as "C:\\Program Files\\Microsoft Office\\Office12\\EXCEL.EXE\" This is, of course, completely different for 2010. To adapt the registry entries you will have to locate your excel 2010 runtime in the program files folder.

In the zip file, there exists a registry file that will undo the changes made by this script.

Alain

Author

Commented:
I've created .reg files for Excel 2010, as well as a batch file solution that does not require modifying the registry. Download and details are available at https://github.com/alainbryden/Open-Excel-In-New-Instance

Commented:
What about an option to open in a new instance if the Shift key is being held down?

Author

Commented:
In windows, shift+double-click is a reserved action that opens all selected folders. If you shift+double-click on a file no action is taken, and I can't imagine there's any way to do this without some sort of always-running tray program monitoring key strokes. Maybe you could set something like that up with autohotkey.

View More

Have a question about something in this article? You can receive help directly from the article author. Sign up for a free trial to get started.

Get access with a 7-day free trial.
You Belong in the World's Smartest IT Community