Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Макросы.doc
Скачиваний:
26
Добавлен:
21.11.2018
Размер:
16.91 Mб
Скачать

Основы автоматизации

При работе со средствами автоматизации надо хорошо понимать роль и назначение каждого участвующего приложения: различают управляющее приложение, или приложение-клиент, и приложение-сервер. Приложение-клиент управляет приложением-сервером. Visual Basic - прекрасный пример управляющего приложения. Приложение-сервер открывает свои объекты, которые может использовать другое приложение. В рамках этой книги Excel является приложением-клиентом.

Стандарт DDE (Dynamic Data Exchange -динамический обмен данными) и метод SendKeys позволяют работать с приложениями, которые не поддерживают технологию OLE-автоматизации.

Ссылка на библиотеку объектов приложения-сервера

Многие приложения, которые поддерживают технологию автоматизации, имеют библиотеки объектов. Библиотека объектов содержит информацию, необходимую приложению-клиенту для управления объектами приложения-сервера. Для получений доступа к этой библиотеке надо создать на нее ссылку из управляющего приложения, такого как Excel.

В этом часе мы рассмотрим, как Excel будет управлять приложением Microsoft Word, т. е. Word будет приложением-сервером, и надо создать ссылку на библиотеку его объектов. Для этого, находясь в редакторе Visual Basic, выполните команду Tools > References (Сервис > Ссылки). Откроется диалоговое окно References, показанное на рис. 23.1. Установите флажок Microsoft Word 9.0 Object Library (Библиотека объектов Microsoft Word 9.0) и щелкните на кнопке ОК. В текущий проект будет добавлена ссылка на эту библиотеку.

Если на вашем компьютере не инсталлирована программа Word 2000, то вы не найдете библиотеку Microsoft Word 9.0 Object Library в списке окна References. A без задания ссылки на эту библиотеку не будут работать те процедуры, которые описаны ниже. Впрочем, если у вас установлена предыдущая версия Word (Word 8.0), то это спасает положение - установите ссылку на библиотеку Microsoft Word 8.0 Object Library- Более ранние версии Word (например, Word 95) не поддерживают VBA и будут бесполезны в упражнениях этого часа. Word 97 (Word 8.0) - первая версия программ семейства Word, которая использует Visual Basic for Applications и соответственно поддерживает технологию автоматизации.

Рис. 23.1. Для применения автоматизации надо сначала установить ссылку на библиотеку объектов приложения сервера

Рис. 23.2. Окно просмотра объектов - полезное средство для знакомства с объектами выбранных библиотек

Просмотр библиотеки объектов

Окно просмотра объектов Object Browser позволяет просматривать все библиотеки объектов, на которые установлены ссылки. Здесь приведены списки всех доступных объектов и их свойств, событий и методов. Для просмотра библиотеки объектов Microsoft Word сначала выполните команду View > Object Browser (Вид > Просмотр объектов), которая открывает окно Object Browser. Выберите Word из списка проектов и библиотек (самый верхний раскрывающийся список в окне Object Browser), отобразится содержимое библиотеки объектов Word (рис. 23.2). Здесь можно выбрать любой объект этой библиотеки и просмотреть все его свойства и методы.

Создание экземпляра приложения-сервера

Задание ссылки на соответствующую библиотеку объектов - это необходимое, но недостаточное условие для использования объектов этой библиотеки. Нужно также с помощью процедуры создать экземпляр приложения-сервера. Для этого используется оператор CreateObject (Создать объект). Только после создания экземпляра приложения-сервера можно использовать все открытые объекты этого приложения, а также их свойства и методы. В листинге 23.1 приведен код, создающий экземпляр Word.

Листинг 23.1. Создание экземпляра Word

1: Dim у As Word.Application

2: Set у " CreateObject("Word.Application")

После создания экземпляра приложения-сервера, можно использовать его объекты, свойства и методы точно так же, как и объекты, свойства и методы Excel.

Что делать дальше? Вот один из возможных путей дальнейшего сотрудничества Word и Excel. Сначала несколько наводящих соображений. И Word, и Excel используют VBA как язык автоматизации. И Word и Excel позволяют записывать макросы. Это не наталкивает вас на некую продуктивную мысль? Нет? Тогда продолжаю: из вышесказанного следует, что можно записать макрос в Word, а затем полученный код вставить в процедуру Excel! Далее в код при необходимости можно внести изменения, или как-нибудь еще использовать этот код - главное, что он у вас есть! Этот подход мы продемонстрируем в следующем разделе.