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


ActiveX-объекты


Технология ActiveX обеспечивает взаимодействие приложений - Автоматизацию (Automation), при которой одно приложение управляет работой другого. На этой технологии построено взаимодействие приложений Office 97. И хотя у нас уже были примеры на эту тему, позволим привести еще один.

Чтобы начать работу с ActiveX-объектом, нужно объявить соответствующую переменную, создать сам объект и связать переменную с объектом. Один из способов выполнения этой работы - использовать спецификатор New в операторе объявления переменных, который в этой ситуации имеет вид:

Dim <имя переменной> As New <имя приложения.имя класса>

По сравнению с обычной конструкцией оператора объявления здесь более сложно задается тип (класс) создаваемого объекта. Первая часть - имя_приложения - указывает приложение, создающее объект, и в то же время это имя библиотеки типов данного приложения - TypeLib. Приложение является сервером, который вызывается для обеспечения работы с объектом. Вторая часть - имя_класса - задает тот конкретный класс, определенный в сервере, экземпляр ActiveX-объекта которого будет создан. Библиотека типов подключаемого приложения должна быть видимой, для чего надо включить ссылку на нее в меню References. Повторим с небольшими вариациями наш старый пример, в котором Excel подключается в приложении Word:

Public Sub WorkWithActiveX() 'Создание объекта Excel.Application при работе с документом Word Dim xlApp As Excel.Application 'Set xlApp = CreateObject("Excel.Application.9") Set xlApp = New Excel.Application xlApp.Application.Visible = True 'Добавить новую книгу xlApp.Workbooks.Add 'Теперь можно работать и с ячейками данной книги xlApp.Workbooks(1).Activate xlApp.Range("A1:A2") = 2 xlApp.Range("B1") = "=A1+A2" xlApp.Range("B2") = "=A1*A2" 'Закрываем открытую книгу без сохранения изменений xlApp.Workbooks(1).Close SaveChanges:=False 'Закрываем приложение xlApp.Quit End Sub

Создание Excel приложения в данном случае возможно двумя способами - применением конструкции New или функции CreateObject.


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