Это очень распространенная проблема, когда лист Excel или диаграмма встроены в Word или Powerpoint.Я вижу эту проблему как в Word, так и в Powerpoint, и причина, по-видимому, заключается в том, что надстройка COM прикреплена к Excel.Надстройка COM написана на C # (.NET).Смотрите прикрепленные изображения для диалогов об ошибках.
Я отладил надстройку и обнаружил очень странное поведение.Методы OnConnection (...), OnDisConnection (...) и т. Д. В надстройке COM работают нормально, пока я не добавлю обработчик событий в код.т.е. обрабатывать Worksheet_SheetChange, SelectionChange или любое подобное событие, доступное в Excel.Как только я добавляю хотя бы один обработчик событий (хотя в моем коде их несколько), Word и Powerpoint начинают жаловаться и не активируют встроенный объект.
В некоторых публикациях в Интернете людей спрашивалиудалить антивирусные надстройки для офиса (ни одного в моем случае), поэтому я полагаю, что проблема в некоторой степени связана с надстройками COM, которые загружаются, когда хост-приложение активирует объект.
У кого-нибудь естьПонятие о том, что здесь происходит? Ошибка PowerPoint http://www.freeimagehosting.net/uploads/d687736c66.png
Ошибка слова http://www.freeimagehosting.net/uploads/f72b99bc25.png
ОБНОВЛЕНО 21-ОЕ ИЮНЯ-2010
Обнаружено, что и события, и измененияв коллекцию ComAddIns создает проблемы при включении встроенного объекта.Теперь я использовал свойство Excel :: Application :: UserControl, чтобы проверить, находится ли Excel во встроенном состоянии, а затем пропустить любой код OnConnection (...) и OnDisconnection (...).
Одно решение для событийпроблема может быть в том, чтобы переместить все события уровня приложения в код VBA и вызвать в .NET.Таким образом, удаляются все обработчики событий из кода .NET.
Могут быть и другие сценарии, в которых встроенный объект может не инициализироваться, поэтому я решил отключить надстройку COM, т.е. пропустить код в OnConnection (...) иМетоды OnDisconnection (...) в целом.