Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / Программирование в Microsoft Office для пользователей
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

13.2 Некоторые особенности программирования в Outlook

Файлы PST и программные модули VBA, пространства имен, элементы (Item), Outlook Object Model Guard

Программирование в Outlook имеет ряд интересных особенностей, о которых необходимо упомянуть.

Первая особенность заключается в том, где именно хранятся программные модули Outlook, в которых мы создаем код. Как мы помним, в Word они хранятся вместе с документами (или шаблонами, например, normal.dot), в Excel — в файлах рабочих книг, в Access — в файлах баз данных MDB. В Outlook информация стандартных модулей хранится в файле личных папок PST, который по умолчанию создается в профиле данного пользователя. В результате, с одной стороны, работа с программным кодом VBA в Outlook упрощается: для данного пользователя он становится на этом компьютере доступен из Outlook всегда. С другой стороны, становится труднее предоставить этот код в распоряжение другого пользователя. В этой ситуации можно использовать два выхода:

  • первый выход — воспользоваться средствами экспорта и импорта программных модулей, которые доступны из контекстного меню для модуля в Project Explorer (см. рис. 13.2)
  • второй выход — создать контейнерное приложение, например, файл Word или книгу Outlook, из которого программным образом запускать Outlook и выполнять в нем необходимые действия.

Рис. 13.2 Средства импорта и экспорта программного кода

Вторая особенность работы с VBA в Outlook заключается в том, в Outlook реализована концепция пространства имен. Пространство имен в Outlook формально определяется как абстрактный корневой объект для любого источника данных (например, папки в почтовом ящике Exchange или файле PST на диске). Проще всего представлять себе пространство имен Outlook как некий драйвер, который можно использовать для подключения к данным. В настоящее время Outlook поддерживает только одно пространство имен — MAPI, но разработчики Outlook требуют, чтобы это пространство имен явно указывалось при выполнении самых разных операций. Например, для запуска Outlook и открытия в нем папки Inbox (Входящие) из другой программы придется использовать следующий код (не забудьте установить ссылку на библиотеку Microsoft Outlook 11.0 Object Library!):

Dim oOutlook As New Outlook.Application

Set oNameSpace = oOutlook.GetNamespace("MAPI")

Set oInbox = oNameSpace.GetDefaultFolder(olFolderInbox)

oInbox.Display

Третья особенность работы с Outlook заключается в некоторой терминологической путанице. Как правило, в документации по объектным моделям приложений Office термин Item (элемент) применяется к элементам коллекций. В Outlook он получает второе значение: Item — это все, что может храниться в папках Outlook: почтовые сообщения (объект MailItem), контакты (объект ContactItem), встречи (объект Appointment) и т.п. Не путайтесь!

И, наконец, четвертая особенность работы с Outlook. На протяжении многих лет Outlook был программой, которая первой подвергалась атакам вирусов, троянских программ и прочего вредоносного программного обеспечения, приходящего по электронной почте. Иногда такие атаки бывали успешными, и Outlook на компьютере пользователя сам начинал рассылать электронные письма с вирусами (в том числе и при помощи кода VBA). Чтобы снизить вероятность развития событий по такому сценарию, разработчики Outlook сознательно поместили в его объектную модель ограничения, которые должны препятствовать распространению вирусов. Иногда эти ограничения (у них есть специальное название — Outlook Object Model Guard) мешают и нормальной работе программ VBA. Об этих ограничениях будет рассказано в следующих разделах этой главы. Иногда по причине таких ограничений Outlook бывает удобнее использовать вместо объектной модели Outlook библиотеку CDO, которая имеется на любом компьютере с Windows 2000, XP или 2003.

Интересной особенностью Outlook является то, что в отличие от других приложений Office, вы не сможете напрямую (при помощи ключевого слова New или команды CreateObject) создать ни одного объекта Outlook, кроме Application. Для создания всех остальных объектов придется использовать соответствующие методы других объектов.

На всякий случай также заметим, что макрорекордера в Outlook, как и в Access, к сожалению, нет. Всю необходимую информацию вам придется искать при помощи документации — или этого сайт.

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 
© 2004-2016, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru