Compartilhar via


Definir um módulo como o módulo selecionado atualmente no painel de navegação

Use a propriedade CurrentModule do objeto NavigationPane no Microsoft Outlook para definir um objeto NavigationModule como o módulo de navegação atualmente selecionado no Painel de Navegação de um objeto Explorer .

O seguinte exemplo define o módulo de navegação de Calendário como o módulo selecionado atualmente se o módulo de navegação Diário estiver selecionado, seja de forma programática ou por ação de usuário, no Painel de Navegação. O exemplo desempenha as seguintes ações:

  1. O exemplo primeiro obtém uma referência ao objeto NavigationPane para o explorador ativo quando o evento Inicialização do objeto Application é gerado e o atribui a , para objPaneque o evento ModuleSwitch do objeto NavigationPane possa ser detectado.

  2. Quando ocorre o evento ModuleSwitch do NavigationPane , o exemplo verifica se o módulo de navegação atual foi alterado comparando o conteúdo do parâmetro CurrentModule do evento ModuleSwitch com a propriedade CurrentModule do objeto NavigationPane .

  3. Se essas referências de objeto forem diferentes, o exemplo verificará a propriedade NavigationModuleType da referência de objeto NavigationModule no parâmetro CurrentModule do evento ModuleSwitch .

  4. Se a propriedade NavigationModuleType do objeto Module selecionado atualmente estiver definida como DiárioDoMódulo, o exemplo exibirá uma caixa de diálogo para indicar ao usuário que o módulo de navegação Diário selecionado atualmente está temporariamente indisponível e que o módulo de navegação Calendário será selecionado.

  5. Por fim, o exemplo usa o método GetNavigationModule da coleção Modules para o objeto NavigationPane para tentar recuperar um objeto CalendarModule . Caso tenha êxito, a propriedade CurrentModule do objeto NavigationPane é definida para o objeto de referência CalendarModule recuperado.

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

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.