![]() |
Работа с контролами на страницах Excel
Добрый день всем.
Кто-нибудь знает решение по управлению контролами на страницах Excel из AutoIt или AutoItX из c# ? |
контролы вроде относятся к окну Excel, а листы/страницы к документу и там не контролы, а ячейки... о чем речь?
|
Имеются ввиду элементы управления, которые можно добавлять на листы экселя в режиме конструктора (кнопки, переключатели, списки, чекбоксы и т.д.).
Потом с ними можно работать из макросов. Если посмотреть на лист экселя из AutoIt Windwow Info, то их (элементов управления) не видно, ни во вкладке Window, ни во вкладке Control. И как ими можно управлять из AutoIt или AutoItX не понятно. |
доступ к объектам очевидно через COM, а вот можно ли программно сэмулировать, скажем, клик на кнопке?
...если по простому, то можно так: Код:
#include <ExcelCOM_UDF.au3> |
На приведенный код дает ошибку
--------- Line 6 (File "C:\tmp\xls\1.au3"): $objApp.Worksheets(1).OLEObjects("CommandButton1").Object.Caption = "My Button" $objApp^ ERROR Error: Variable must be of type "Object". --------- По ссылке ходил еще раньше. Там много чего есть по работе с экселем, но по управлению контролами не нашел ничего... |
ну дык _ExcelAttach() подключается к уже открытой таблице Книга1.xls с контролом "CommandButton1" на 1-м листе
|
правильно, книга открыта, на ней кнопка с именем и капшином как в примере кода и при этом ошибка
|
как следует из текста ошибки, проблема именно в _ExcelAttach() - она не подключается к документу... собственно, открытие/подключение к книге Excel немного в стороне от заявленного в теме вопроса ;), проверьте - точно ли соответствует значение $strTitle титлу окна в действительности, попробуйте другие варианты подключения/открытия файлов, проверяйте значение, возвращаемое _ExcelAttach() и аналогичными UDF, например через IsObj()
теперь по теме - COM-модель, используемая в библиотеке ExcelCOM описана на сайте Microsoft, оттуда и инфа по контролам: http://msdn.microsoft.com/en-us/libr...ffice.11).aspx |
amel27, спасибо !
Буду дальше разбираться... |
Время: 17:50. |
Время: 17:50.
© OSzone.net 2001-