Читаем VBA для чайников полностью

Первое правило очевидно; можно использовать объекты другого приложения, если оно установлено в системе. Если это условие выполнено, для работы с объектами приложения, поддерживающего стандарт СОМ, требуется выполнить ряд предварительных действий.

1. В редакторе Visual Basic добавить ссылку на объектную библиотеку внешнего приложения.

2. Объявить переменные для объектов, которые придется использовать в программе.

3. Создать экземпляры соответствующих объектов с помощью функции Сrеat eObject.

В следующих трех подразделах эти шаги рассматриваются детальнее.

Чтобы информировать Visual Basic об объектной модели внешнего приложения, нужно добавить и активизировать ссылку на объектную библиотеку этого приложения. В окне редактора Visual Basic выберите Tools?References, чтобы открыть диалоговое окно References (Ссылки).

Если Outlook установлена на вашем компьютере, объектная библиотека Outlook уже должна присутствовать в списке Available References (Доступные ссылки) диалогового окна References. Ее нужно найти в этом списке и установить флажок рядом с ее именем, чтобы библиотека стала доступной. Если нужной библиотеки в списке не оказалось, добавьте ссылку в список сами, воспользовавшись кнопкой Browse (Обзор).

Переменные для объектов из внешних приложений объявляются стандартным для VBA образом. Чтобы узнать, какие объекты внешнего приложения доступны, используйте либо обозреватель объектов редактора Visual Basic, либо файл справки этого внешнего приложения. Операторы следующего фрагмента программного кода объявляют переменные для объектов Outlook, которые предполагается позже использовать в программе:

Dim objOutlook As Outlook.Application

Dim objOLNamespace As Outlook.NameSpace

Dim colFolders As Outlook.Folders ' коллекция папок

Dim objPeopleFolder As Outlook.MAPIFolder

Dim colPeople As Outlook.Items ' коллекция контактов

Dim objPerson As Object ' один отдельный контакт

Dim strName As String

Объявление объектов только говорит о вашем намерении использовать их. В дальнейшем вы должны создать необходимые объекты с помощью операторов Set внутри подходящих процедур.

При создании объекта из внешнего приложения используется функция СrеateObject. Она открывает соответствующее приложение, которое и создает нужный объект. Возвращаемое функцией значение будет ссылкой на объект, которую можно присвоить подходящей переменной. А чтобы открыть внешнее приложение с уже готовым файлом или документом, используйте функцию GetObject.

Вот программный код процедуры из примера Outlook+Visio, создающей экземпляры нужных объектов:

Sub PeopleDiagram()

Set objOutlook = CreateObject("Outlook.Application")

' Используйте CreateObject("Outlook.Application.8")

' с другой версией Outlook

Set objOLNamespace = objOutlook.GetNamespace("MAPI")

Set colFolders = objOLNamespace.Folders ' все папки

Set objPeopleFolder = colFolders.Item("Personal Folders")

' определение переменных для движения внутрь папки

Set colFolders = objPeopleFolder.Folders

Set objPeopleFolder = colFolders.Item("Contacts")

Set colPeople = objPeopleFolder.Items

' вызов процедуры типа Sub, использующей данные Outlook

ChartAName

End Sub

Обратите внимание, что во многих случаях- и в этом примере тоже- функция СrеateObject нужна только один раз. После того как объект внешнего приложения создан, вы можете использовать его свойства и методы. Как правило, свойства включают другие объекты (в данном случае коллекция Folders, папки Personal Folders и Contacts, a также коллекцию объектов внутри папки Contacts ).

Приложение, которое вы открываете из своего программного кода, выполняется в скрытом виде - на экране оно не отображается. Это очень удобно, если вы хотите использовать в своей программе данные другого приложения, не раздражая при этом пользователя. Но иногда все же нужно показать приложение в его обычной форме. Тогда, в зависимости от приложения, нужно либо установить для свойства Visible значение True, либо использовать метод Display, как здесь: objPeopleFolder.Display

Теперь, наконец, вы готовы использовать объекты внешнего приложения в своей программе точно так же, как и те, которые пришли вместе с вашим VBA-приложением. Вот пример того, как это сделать в Visio при создании организационной диаграммы, использующей имена из папки Contacts, принадлежащей Outlook:

Sub ChartAName()

For Each objPerson In colPeople

strName = objPerson.FullName

...( программный код построения диаграммы Visio на основе этих данных)

Next

End Sub

Программный код на Web-странице не содержит этой процедуры, поскольку я не знаю наверняка, что у вас есть Visio. Вместо вызова этой процедуры в процедуре PeopleDiagram просто отображается диалоговое окно при каждом обращении к данным Outlook. (Правда, у вас может не оказаться также и Outlook, в таком случае данный пример вообще не будет работать.)

<p>Управление базами данных с помощью VBA</p>

Если вы собираетесь использовать VBA для работы с данными, хранящимися в "реальных" базах данных типа файлов Microsoft Jet (формат баз данных, используемых

Перейти на страницу:

Все книги серии Для чайников

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных