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 и обратная связь.