Установка модуля в качестве текущего выбранного модуля в области навигации
Используйте свойство CurrentModule объекта NavigationPane в Microsoft Outlook, чтобы задать объект NavigationModule в качестве выбранного в данный момент модуля навигации в области навигации объекта explorer .
В следующем примере модуль навигации Календарь задается в качестве текущего выбранного модуля навигации, если модуль навигации Журнал выбран в области навигации программными средствами или пользовательским действием. В примере выполняются следующие действия:
Пример сначала получает ссылку на объект NavigationPane для активного обозревателя при возникновении события Startup объекта Application и назначает его
objPane
, чтобы можно было обнаружить событие ModuleSwitch объекта NavigationPane .При возникновении события ModuleSwitchэлемента NavigationPane пример проверяет, изменился ли текущий модуль навигации, сравнивая содержимое параметра CurrentModule события ModuleSwitch со свойством CurrentModule объекта NavigationPane .
Если эти ссылки на объекты отличаются, в примере проверяется свойство NavigationModuleType ссылки на объект NavigationModule в параметре CurrentModule события ModuleSwitch .
Если для свойства NavigationModuleType выбранного объекта Module задано значение olModuleJournal, в примере появится диалоговое окно, указывающее пользователю, что выбранный в данный момент модуль навигации Журнал временно недоступен и что вместо него будет выбран модуль навигации Календарь .
Наконец, в примере используется метод GetNavigationModule коллекции Modules для объекта NavigationPane , чтобы попытаться получить объект CalendarModule . В случае успешного выполнения для свойства CurrentModule объекта NavigationPane задается полученная ссылка на объект CalendarModule .
Dim WithEvents objPane As NavigationPane
Private Sub Application_Startup()
' Get the NavigationPane object for the
' currently displayed Explorer object.
Set objPane = Application.ActiveExplorer.NavigationPane
End Sub
Private Sub objPane_ModuleSwitch(ByVal CurrentModule As NavigationModule)
Dim objModule As CalendarModule
' Check if the currently selected navigation module
' has changed.
If Not (CurrentModule Is objPane.CurrentModule) Then
' If the Journal module was selected, forcibly change
' it to the Calendar module by setting the
' CurrentModule property of the NavigationPane object.
If CurrentModule.NavigationModuleType = olModuleJournal Then
' Let the user know what's happening.
MsgBox "The Journal module is temporarily unavailable. " & _
" Outlook is switching to the Calendar module, if available."
' Retrieve the Calendar module, if one exists, for the
' current Navigation Pane.
Set objModule = objPane.Modules.GetNavigationModule(olModuleCalendar)
' If we have one, set the CurrentModule property of the
' NavigationPane object to the Calendar module.
If Not (objModule Is Nothing) Then
Set objPane.CurrentModule = objModule
End If
End If
End If
End Sub
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.