Поделиться через


Установка модуля в качестве текущего выбранного модуля в области навигации

Используйте свойство CurrentModule объекта NavigationPane в Microsoft Outlook, чтобы задать объект NavigationModule в качестве выбранного в данный момент модуля навигации в области навигации объекта explorer .

В следующем примере модуль навигации Календарь задается в качестве текущего выбранного модуля навигации, если модуль навигации Журнал выбран в области навигации программными средствами или пользовательским действием. В примере выполняются следующие действия:

  1. Пример сначала получает ссылку на объект NavigationPane для активного обозревателя при возникновении события Startup объекта Application и назначает его objPane, чтобы можно было обнаружить событие ModuleSwitch объекта NavigationPane .

  2. При возникновении события ModuleSwitchэлемента NavigationPane пример проверяет, изменился ли текущий модуль навигации, сравнивая содержимое параметра CurrentModule события ModuleSwitch со свойством CurrentModule объекта NavigationPane .

  3. Если эти ссылки на объекты отличаются, в примере проверяется свойство NavigationModuleType ссылки на объект NavigationModule в параметре CurrentModule события ModuleSwitch .

  4. Если для свойства NavigationModuleType выбранного объекта Module задано значение olModuleJournal, в примере появится диалоговое окно, указывающее пользователю, что выбранный в данный момент модуль навигации Журнал временно недоступен и что вместо него будет выбран модуль навигации Календарь .

  5. Наконец, в примере используется метод 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 и обратная связь.