This post is brought to you by Chad Rothschiller, a Program Manager in the Excel Team.
In Excel 2013, each of your workbooks opens in its own window, similar to Word and PowerPoint. This means that each workbook has its own ribbon and top-level window frame that you can move and resize independent from your other open workbooks. This functionality can improve multitasking, visibility, and analysis across workbooks.
We’ll discuss some of the more advanced aspects of these changes, in particular how to have workbooks running in different instances (or processes) of Excel.
Merging instances and long-running operations
Excel 2013 helps prevent accidental extra instances (or processes) of Excel running. We’ve found that extra instance introduced unexpected and sometimes confusing results (for example, pasting a range from a workbook in one instance of Excel to a workbook in a different instance of Excel works differently than if the two workbooks were running in the same instance). In the new Excel, we have built new detection logic that knows when an additional, new instance of Excel is starting up (e.g., you clicked Excel on the start menu), and merges that workbook (and new Excel instance) into the instance of Excel that’s already running. In other words, you won’t very often see more than one Excel.exe in the Task Manager. Word has behaved this way for several releases now, and it is a much simpler model to understand.
However, we’ve built in a couple of ways for you to get a second (or third) instance of Excel running, if that’s really what you want. Most often, people want to do this when they know they have a huge workbook that takes a long time to open (or some other process that takes a long time to complete, such as a data refresh or a calculation), and they want to keep working in Excel while that long-running process finishes. One good way to accomplish this is to get two instances of Excel running: one you can use to kick off the long process, and the other you can use to keep working while you wait for the other process to finish.
Start a second instance with ALT + boot Excel
In Windows 8, one way to start an additional instance of Excel is to press and hold the ALT key, then, without releasing the ALT key, right-click the Excel icon in the Windows taskbar and click the Excel icon above the Unpin option.
Continue holding down the ALT key until you are asked whether you want to start a new instance of Excel.
Click Yes to get a second instance of Excel up and running.
In general, anytime Excel is starting up, holding down the ALT key triggers the above dialog asking about a new instance.
Start a second instance with command line
There’s also a switch for booting Excel from the command prompt: /x. In Windows 8, press the Windows key and X key at the same time and then select Run.
Type excel.exe /x, and then click OK. This should launch a new instance of Excel.
The switch to Single Document Interface (SDI) might impact some of the code in your add-ins or other solutions, particularly if the code:
- Works with Window methods, events, and properties. All existing application-level window methods, events, and properties are unaffected by this change. All existing workbook-level window methods, events, and properties now operate on the top-level window for that workbook.
- Users custom ribbon controls and/or task panes. Code working with custom ribbon controls and task panes might need to be updated to handle multiple custom ribbon controls that are present when more than one workbook is open. Remember that each workbook gets its own instance of the ribbon, along with all the controls it contains.
- Employs modeless userforms. Now that there are multiple top level Excel windows, none of them is the master. Which makes keeping modeless userforms on top of all Excel windows very difficult. Code might need to be added to help keep the userform on top.
Thanks everyone for reading. I hope you all get wonderful benefits from being able to spread your workbooks out on your screens!
–Chad Rothschiller, Excel Program Manager