Это поведение является намеренным. Вы можете загрузить надстройки в папку XLSTART самостоятельно, как описано Microsoft:
Надстройки не загружаются при использовании команды CreateObject в Excel
Другой вариант - запустить Excel, используя Process.Start
, а затем объект автоматизации из запущенного экземпляра, вызвав функцию AccessibleObjectFromWindow
.
Пример кода, как это сделать в C # или VB, можно найти в связанном вопросе:
Как использовать позднюю привязку для получения экземпляра Excel?
Обратите внимание, что вам не нужно использовать позднюю привязку, как в приведенном примере. Модифицируйте образец таким образом, чтобы получить строго типизированный объект Excel.Application
:
Excel.Application xlApp = ptr.GetType().InvokeMember("Application",
BindingFlags.GetProperty, null, ptr, null);