Основы офисного программирования и язык VBA


ActiveX-объекты - часть 2


Однако, использование New для создания ActiveX-объектов не всегда возможно. Не все приложения допускают такой способ подключения, и не все объекты доступны, - например, недоступны внутренние ActiveX-объекты, которые совместно могут храниться в одном и том же файле. Более универсальный способ создания ActiveX-объектов - вызов специальных функций CreateObject и GetObject. Как правило, вызов этих функций помещается в правую часть оператора Set. В результате его выполнения объектное выражение возвращает ссылку на созданный объект, которая и становится значением переменной.

Синтаксис функции CreateObject таков:

CreateObject(<класс>)

Параметр класс - строка, задающая класс объекта, у которой две обязательные части: "имя_приложения.имя_класса"; ее вид совпадает с видом задания класса ActiveX-объектов в операторе объявления.

Функция GetObject имеет дополнительный параметр:

GetObject(<путь>, <класс>)

Параметр путь задает полный путь к файлу, содержащему ActiveX-объект. Этот объект и активизируется. Второй параметр при этом необязателен. Но если файл содержит группу ActiveX-объектов разных классов, задать его необходимо. Можно опустить и первый параметр, если ActiveX-объект этого класса уже создан, и тогда возвращается ссылка на активный объект заданного класса. Вот пример, в котором читается книга Excel, используя метод GetObject. Обратите внимание, книга создается без предварительного создания объекта Application:

Public Sub WorkWithGetObject() Const MY_PATH As String = "e:\O2000\CD2000\Ch4\" Dim myBook As Excel.Workbook Set myBook = GetObject(MY_PATH & "BookOne.xls") With myBook .Application.Visible = True 'Чтобы увидеть книгу, включите ее в окне UnHide из меню Window .Charts("Динамика Продаж").Activate 'Посмотрев на диаграмму, переключимся на рабочий лист MsgBox ("Вы можете перейти в Excel") .Worksheets(1).Activate .Worksheets(1).Range("A40") = 777 .Save .Application.Quit End With End Sub




Начало  Назад  Вперед



Книжный магазин