Вы можете использовать Application.IgnoreRemoteRequests = true
.Это позволит избежать открытия пользователями файлов Excel в том же Excel
процессе, что и тот, который вы используете.
Однако есть одно предостережение: вы должны убедиться, что все пути выполнения вашего приложения сбрасывают это свойство в false
.Это свойство НЕ будет сбрасываться само по себе, когда вы выйдете и отпустите приложение Excel
, что означает, что Excel
не будет правильно отвечать последующему пользователю, который, например, дважды щелкнет по файлу * .xls.
РЕДАКТИРОВАТЬ: возможные проблемы с IgnoreRemoteRequest
Хорошо, чтобы прояснить ситуацию, я немного подробнее опишу, с какими проблемами вы можете столкнуться при использовании этой функции (по крайней мере, этоединственные, с которыми я столкнулся, когда мне пришлось использовать эту функцию).
При установке IgnoreRemoteRequests = true
вы должны обязательно сбросить это свойство ПЕРЕД выходом и / или выпуском приложения COM Excel.Если вы этого не сделаете, Excel не будет отвечать на запросы DDE, что означает, что если кто-то дважды щелкнет файл * .xls, файл не откроется (Excel запустится, но не откроет файл автоматически).
Однако это верно только в том случае, если вы выходите из приложения и / или выпускаете его без сброса свойства.Вам просто нужно убедиться, что где бы вы ни находились в своем коде, который вы выходите / сбрасываете, вы устанавливаете IgnoreRemoteRquests
обратно на false
раньше.
Если ваше приложение аварийно завершает работу и оно не былов состоянии очистить (необработанное исключение), тогда процесс EXCEL продолжит выполняться (если он невидим, вы увидите его только в диспетчере задач).Это нормально, так как у вашего приложения не было возможности выйти и выпустить внутренний используемый Excel.Это, однако, не является проблемой.Если пользователь игнорирует этот «просочившийся» процесс Excel до тех пор, пока он в конечном итоге не будет убит при следующей перезагрузке или чем-либо еще, или вручную убьет его с панели задач, Excel будет работать отлично.
Примечание: MS Excel 2007. Незнать о поведении предыдущих версий.