<

Option to open excel 2007 documents in a new instance

Published on
29,780 Points
22,280 Views
10 Endorsements
Last Modified:
Approved
Community Pick
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
Author:alainbryden
Ask questions about what you read
If you have a question about something within an article, you can receive help directly from the article author. Experts Exchange article authors are available to answer questions and further the discussion.
Get 7 days free