Коллеги, помогите , кто чем может! Пишу add-in для Excel 2007 на C#, в нём есть необходимость ловить событие WorkbookOpen. В методе ThisAddin_Startup добавляю
this.Application.WorkbookOpen += new Microsoft.Office.Interop.Excel.AppEvents_WorkbookOpenEventHandler(Application_WorkbookOpen);
всё, как положено. Но вот в чём проблема: когда открываешь файл из самого Excel — событие приходит. Когда открываешь файл двойным кликом — событие приходит. А когда открываешь файл из командной строки с параметром ( excel.exe Book1.xlsx ) — то никакого события не приходит! Почему?! Кто-нибудь встречался с таким?
Здравствуйте, DonTorchino, Вы писали:
DT>Коллеги, помогите , кто чем может! Пишу add-in для Excel 2007 на C#, в нём есть необходимость ловить событие WorkbookOpen. В методе ThisAddin_Startup добавляю
DT>DT>this.Application.WorkbookOpen += new Microsoft.Office.Interop.Excel.AppEvents_WorkbookOpenEventHandler(Application_WorkbookOpen);
DT>
DT>всё, как положено. Но вот в чём проблема: когда открываешь файл из самого Excel — событие приходит. Когда открываешь файл двойным кликом — событие приходит. А когда открываешь файл из командной строки с параметром ( excel.exe Book1.xlsx ) — то никакого события не приходит! Почему?! Кто-нибудь встречался с таким?
Наверное add-in загружается после того этого события. Проверяй в OnConnection свойство Excel.Application.ActiveWorkbook (или коллекцию Excel.Application.Workbooks — смотря что тебе нужно).
Здравствуйте, Warturtle, Вы писали:
W>Здравствуйте, DonTorchino, Вы писали:
DT>>Коллеги, помогите , кто чем может! Пишу add-in для Excel 2007 на C#, в нём есть необходимость ловить событие WorkbookOpen. В методе ThisAddin_Startup добавляю
DT>>DT>>this.Application.WorkbookOpen += new Microsoft.Office.Interop.Excel.AppEvents_WorkbookOpenEventHandler(Application_WorkbookOpen);
DT>>
DT>>всё, как положено. Но вот в чём проблема: когда открываешь файл из самого Excel — событие приходит. Когда открываешь файл двойным кликом — событие приходит. А когда открываешь файл из командной строки с параметром ( excel.exe Book1.xlsx ) — то никакого события не приходит! Почему?! Кто-нибудь встречался с таким?
W>Наверное add-in загружается после того этого события. Проверяй в OnConnection свойство Excel.Application.ActiveWorkbook (или коллекцию Excel.Application.Workbooks — смотря что тебе нужно).
Спасибо за помощь, хотя в 2007 экселе нет OnConnection — есть ThisAddin_Startup. Тем не менее, сделал там проверку свойства Excel.Application.ActiveWorkbook — помогло!
Здравствуйте, DonTorchino, Вы писали:
DT>Здравствуйте, Warturtle, Вы писали:
W>>Здравствуйте, DonTorchino, Вы писали:
DT>>>Коллеги, помогите , кто чем может! Пишу add-in для Excel 2007 на C#, в нём есть необходимость ловить событие WorkbookOpen. В методе ThisAddin_Startup добавляю
DT>>>DT>>>this.Application.WorkbookOpen += new Microsoft.Office.Interop.Excel.AppEvents_WorkbookOpenEventHandler(Application_WorkbookOpen);
DT>>>
DT>>>всё, как положено. Но вот в чём проблема: когда открываешь файл из самого Excel — событие приходит. Когда открываешь файл двойным кликом — событие приходит. А когда открываешь файл из командной строки с параметром ( excel.exe Book1.xlsx ) — то никакого события не приходит! Почему?! Кто-нибудь встречался с таким?
W>>Наверное add-in загружается после того этого события. Проверяй в OnConnection свойство Excel.Application.ActiveWorkbook (или коллекцию Excel.Application.Workbooks — смотря что тебе нужно).
DT>Спасибо за помощь, хотя в 2007 экселе нет OnConnection — есть ThisAddin_Startup. Тем не менее, сделал там проверку свойства Excel.Application.ActiveWorkbook — помогло!
OnConnection есть — это вроде не от версии офиса зависит — просто у тебя не совсем "честный" add-in, а через дополнительную прослойку в виде VSTO (Visual Studio Tools for Office), если я правильно понимаю.