Using Outlook Visual Basic for Applications to Respond to Outlook Events

Вы записывая процедура события (также известная как обработник событий) для реагирования на события, происходящие в Microsoft Outlook. Например, можно написать процедуру события, которая автоматически увеличивает окно обозревателя при Outlook.

События связаны с определенными объектами. Объект Application — это самый верхний объект и всегда доступен (то есть его не нужно создавать). Вы можете добавить процедуру события приложения в окне модуля ThisOutlookSession, просто выбрав приложение в левом списке, а затем выбрав событие в правом списке.

Добавление обработера событий для объектов, помимо объекта Application , требует нескольких дополнительных действий.

Сначала необходимо объявить переменную с помощью ключевого слова WithEvents , чтобы определить объект, с событием которого необходимо справиться. Например, чтобы объявить переменную, представляющую объект OutlookBarPane , необходимо добавить следующее в модуль кода.

Dim WithEvents myOlBar as Outlook.OutlookBarPane

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

Private Sub myOlBar_BeforeNavigate(ByVal Shortcut As OutlookBarShortcut, Cancel As Boolean) 
 If Shortcut.Name = "Notes" Then 
 MsgBox "You cannot open the Notes folder." 
 Cancel = True 
 End If 
End Sub

На заключительном этапе необходимо добавить код, чтобы установить переменную объекта к объекту, событие которого необходимо обрабатывать. Этот код может существовать в макросе, или если вы хотите, чтобы событие обрабатывалось при Outlook запуске, его можно поместить в процедуру запуска событий, как в следующем примере.

Private Sub Application_Startup() 
 Set myOlBar = Application.ActiveExplorer.Panes(1) 
End Sub

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.