Название: Как увидеть книгу при нескольких запущенных экзеплярах Excel Отправлено: solmir от 19.11.2013, 08:00:52 Доброго времени суток, форумчане. Помогите решить проблему. Имеется книга с кодом
Код: (vb) Sub test1() Код видит все книги открытые в одном приложении Excel.Application Обрабатываемый файл создаётся внешним приложением ИМХО аналогично методу CreateObject (, "Excel.Application") (New), при этом в диспетчере задач создаётся еще один или несколько объектов EXCEL.EXE в зависимости от кол-ва экспортируемых документов. Подскажите код, чтобы перебирать все экземляры excel и искать все книги. P.S. Уверен код несложный, пробовал следующее: Код: (vb) Sub test2() Название: Re:Как увидеть книгу при нескольких запущенных экзеплярах Excel Отправлено: kuklp от 19.11.2013, 09:21:51 P.S. Уверен код несложный... Та да! Только через АПИ функции и то под вопросом. Как убить процессы знаю, а как перехватить управление, это вопрос... :( И даже если это возможно через АПИ, не факт, что будет работать под ВБА.Название: Re:Как увидеть книгу при нескольких запущенных экзеплярах Excel Отправлено: doober от 19.11.2013, 11:54:05 Цитировать P.S. Уверен код несложный... Как вы считаете?Цитировать И даже если это возможно через АПИ, не факт, что будет работать под ВБА Серега,ты не прав,работает. Учтены версии англ и рус Код: (vb) Private Declare Function AccessibleObjectFromWindow& Lib "oleacc.dll" _ Название: Re:Как увидеть книгу при нескольких запущенных экзеплярах Excel Отправлено: kuklp от 19.11.2013, 11:59:46 Серег, а в чем не прав? Насчет буде ли работать под ВБА - было только предположением. А насчет сложности и АПИ - утверждением ;)
В любом случае - спасибо. Утяну в норку :) Название: Re:Как увидеть книгу при нескольких запущенных экзеплярах Excel Отправлено: doober от 19.11.2013, 12:09:56 Цитировать Насчет буде ли работать под ВБА Это так,к слову.Типа,Борис,ты не прав ;DНазвание: Re:Как увидеть книгу при нескольких запущенных экзеплярах Excel Отправлено: kuklp от 19.11.2013, 12:12:46 А то я не понял :) Но как не побурчать...
Название: Re:Как увидеть книгу при нескольких запущенных экзеплярах Excel Отправлено: solmir от 19.11.2013, 14:35:40 to kuklp: я мог предполагать что понадобиться использование API, но предполагал что будет такой код!
to doober: СНИМАЮ ШЛЯПУ!!! Сам бы никогда не написал такой код... Попытаюсь разобраться, однако, если не сложно, можете описать ключевые детали данного кода. Код работает как и требовалось! Название: Re:Как увидеть книгу при нескольких запущенных экзеплярах Excel Отправлено: doober от 19.11.2013, 22:01:37 Ключевые моменты.
Чтобы достучаться до Excel,надо знать его Guid {"{00020400-0000-0000-C000-000000000046}"} преобразуем его Код: (vb) .Data1 = &H20400 Надо пройти от родителя до XLMAIN до самого младшенького потомка. XLMAIN XLDESK EXCEL7. определение этой цепочки и вызывает трудности,если не знать,как подсмотреть эти имена классов Краткое видео (http://yadi.sk/d/pqoQuPb_CyEcx),программа для просмотра (http://yadi.sk/d/p9cqI_zC7lwHk) остальное уже дело техники,по функйиям АПИ ничего сложного нет. Хендл мамы есть,находим дитя ее. ;D |