Recently my Excel crashed and hid itself so there are multiple copies of the same file opened and the old copy overwritten the new copy. Whenever I try to open a file from Explorer, the opened Excel file closes itself and hides in the background! WTF!
Cause
Turns out Microsoft’s turned the preview handler for Excel on by default, and whoever the f***ing guy who programmed this handler chose to do the simple minded thing by simply opening the file in a full Excel limited into the preview pane by the ActiveX control!
Damn. Have they even thought users would normally click on the file in Explorer, which the preview pane opens it in the background when the file is selected/highlighted, just to double click to open it in a full Excel to edit it?!!
Excel 2013’s breaking change
Since Excel 2013, all files open in the same instance by default
https://learn.microsoft.com/en-us/office/troubleshoot/excel/force-excel-to-open-new-instance
This means if the preview handler didn’t specifically spin a different instance just for the preview, the preview handler will compete with the foreground Excel you opened (by opening a file) for the control over one instance of Excel and the files!!!
This means every time I trigger a preview by moving the selecting another excel file in Explorer, it will close the foreground opened Excel file and suck the excel program into the preview pane to open the current file I selected, leaving my opened foreground Excel file lingering nowhere in the background that I don’t have control to! WTF!
Not only that, the preview pane might occasionally work in parallel with the foreground instance, but when you move away from the file and select another excel file in explorer, the ActiveX/DCOM tries to close out the other opened instances or shove them into the background! That’s infuriating glitchy behavior. When I double click the .xlsx files in the folder, it crashes the application and prompts me to repair the files! WTF!
Does these people working in Microsoft even eat their own dogfood anymore? This is such an obvious case of things breaking out of the box in the most expected nominal default use case! It’s just inexcusable.
Apparently the people who did the preview handler for Excel 2013 didn’t thought of making a dedicated lightweight Excel file viewer that runs independently of the ONE excel instance (which by 2013, it defaults to only allowing one instance). The preview handler is simply recycling the same main Excel instance!
Whoever the programmer it is at Microsoft should have known you cannot just let a preview handler that competes with the foreground app roam free without special handling! And yet this bug is still there as of Office 2013 v15.0. 5571.1000 (Jul 11, 2023)!
Fix 1: Just screw Preview Pane
Preview Pane is actually a very dangerous apparatus. It basically opens the file you selected right away with a preview handler defined in the registry. Basically it’s makes single clicking a file behave like double clicking a file except with a different set of handler/commands to open it. This means if the program your preview handler is crap, it’ll litter all over the place with the damned application as you just hover to or single-click a file, which is what happened with Excel: every DDE (DDE is Dynamic Data Exchange, Microsoft’s implementation of IPC: Inter-Procedure Call, i.e. program puppet controlling others) call to preview an Excel file messes with whatever that’s opened elsewhere in Excel!
This is a simple solution. Nowadays these preview programs are not lighter weight than the full application. In Microsoft Office’s case, it’s exactly calling the full program with DDE/IPC calls with a /readonly switch. You might as well just double click on the file you actually cared to preview instead of relying on this stupid feature that saves you only one click and brings you agony if the program coordination is messed up (or even worse, the preview handler got hijacked and redirected to a worm/virus program).
Fix 2: Disable just the Microsoft Office Handlers
If you cannot live without other previewers, you can just disable the ones in Microsoft Office. Their DDE is atrocious. I’ve programmed these MS Office puppetry before. Excel is especially frustrating because of their convoluted recursive structure. It’s not easy to time everything right and constantly ensure the correct state doesn’t get interrupted or else the misguided puppetry code we naively programmed there can wreak havoc when it doesn’t see what it expects.
After this nasty experience where I lose data insidiously, I’m not letting these Microsoft Miscreants (TM) run on my computer.
It’s messy to edit it through the registry because you’ll have to find the CLSID for these preview handlers shown in:
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PreviewHandlers
then dig through every extension that calls them, e.g.
I wouldn’t recommend this path because it’s easy to mess up and you have to dig through what extensions maps to the CLSID to avoid unpleasant surprises.
Nirsoft has a freeware called ShellExView that does a lot of shell-related registration entries, which Preview Handlers is a kind of it. You can disable these misbehaving preview handlers here: