I have designed a .net application which will open an Excel file at the time of login and use it to print a report. It will be closed while logging out the user. I set visib
Use the IgnoreRemoteRequests
property of the Excel application object:
xlApp.IgnoreRemoteRequests = True
This is the equivalent of checking the Excel UI option at
File | Options | Advanced | General | Ignore other applications that use Dynamic Data Exchange (DDE).
(See this related answer on SuperUser.)
I couldn't conveniently reproduce your scenario with a .NET application, but ran some tests by late binding an Excel.Application object from Word VBA and it worked as intended. I created a hidden Excel application, and was able to perform actions on it before and after opening files by double-clicking in File Explorer.
In my tests, the setting was not still toggled on the next time I opened Excel normally, but you might want to capture its value and restore it before quitting your application object, in case that behavior isn't universal.
Edit: This behavior has been around since at least Excel 2003, and I verified using Excel 2016 (32-bit).
In Excel 2013 or later, Excel switched to a single document interface: each workbook opens in its own window.
At least through 2016, the Visual Basic Editor has remained a multiple document interface, and you can easily see which files are open in an application session by looking at the Project Explorer pane in the VBE.