Объектная модель Outlook 2010


Итак, после описания языка и работы со средой вы полностью готовы к полноценному программированию на Visual Basic for Application. Одной из важнейших характеристик системы программирования, определяющих ее удобство, является наличие уже готовых библиотек и компонент. В данных библиотеках описаны классы, полезные для решения стандартных задач, встречающихся в соответствующей сфере программирования. Классы Microsoft Office XP являются "золотым фондом" VBA, поскольку именно использование объектов этих классов делает VBA недосягаемым в области офисного программирования.
В этой главе мы описываем только поверхностно объектную модель Outlook 2010 и стандартные классы VBA и Office и не претендуем на подробное, исчерпывающее описание каждого объекта, свойства или метода, на это есть справочная система. Мы просто хотим показать работу с моделью и иерархией "в целом", что достаточно трудно сделать, руководствуясь только справочной информацией.
Далее в этой главе постоянно используется термин объектная модель (object model). Под этим термином подразумевается совокупность взаимосвязанных объектов, которые объединяет нечто общее, например назначение, область применения, принадлежность одной иерархии классов. Рассматривая объектную модель, мы будем приводить небольшие примеры использования ее классов в Outlook, что, надеемся, будет способствовать лучшему пониманию и усвоению излагаемого материала. Но прежде всего несколько общих положений.
Общие положения
Любая модель, определенная в VBA, состоит из классов, каждый из которых представляет собой отдельный объект или семейство объектов. Объектов в Office, да и в Outlook достаточно много, но во всех приложениях участвует объект Application, представляющий само приложение. Application — это корневой класс Outlook, в который вложены все остштьные объекты, именно этот первый уровень вложенности мы и будем рассматривать.
Глядя на схему объектной модели, можно определить, какие объекты описывают работу приложения, как они связаны между собой и как составить ссылку для доступа к конкретному объекту. Как вы помните, VBA наряду с наследованием поддерживает встраивание объектов, таким образом, чтобы составить ссылку на объект, нужно проследить путь в иерархии объектов, начиная с объекта Application на первом уровне иерархии до целевого объекта, и записать последовательность имен, находящихся на пути объектов или семейств, отделяя их друг от друга точкой. При этом для семейств, кроме имени, необходимо указать в скобках индекс или имя элемента, т. е. задать конкретный объект в семействе. Например, для указания ссылки на объект, находящийся на третьей ступени иерархии приложения, следует использовать такую запись:
Application.Assistant.Sounds
Доступ к отдельным элементам некоторых семейств можно получить, не указывая индекс или имя объекта. Например, доступ к активному представлению Outlook, который в общем случае вызывается через указатель Application. Explorers, осуществляется с помощью свойства ActiveExpiorer объекта Application. Таким образом, чтобы отобразить панель папок в текущем представлении, следует использовать такую запись:
Application.ActiveExpiorer.ShowPane(olFolderList, True)
Завершая общие положения, нельзя не сказать о справочной информации по объектной модели Outlook, верном спутнике при программировании на VBA. Для отображения иерархии классов воспользуйтесь примером, приведенным ниже.
Получение справки об объектной модели Outlook 2010
> Справка > Справка по Microsoft Outlook Содержание
Дополнительные средства настройки
Microsoft Outlook Visual Basic Reference Microsoft Outlook Objects
Также не забывайте об удобном средстве просмотра объектов Object Browser, которое заметно упростит понимание структуры объектной модели. И наконец, в случае серьезных затруднений советуем обратиться за справкой к MSDN (Microsoft Developer Networks), справочной системе, содержащей гигабайты информации, примеров, исходного кода и т. д. Помимо всего прочего, в Интернете можно найти огромное множество как российских, так и зарубежных Web-сайтов, посвященных разработке приложений в Microsoft Office.