Compartilhar via


Enumerar Pastas Ativas na Exibição de Calendário

No Microsoft Outlook, você pode percorrer a hierarquia de grupo e pasta de um módulo no Painel de Navegação usando as coleções NavigationGroups e NavigationFolders . A coleção NavigationGroups do objeto NavigationModule contém cada grupo de navegação exibido em um módulo de navegação, enquanto a coleção NavigationFolders do objeto NavigationGroup contém cada pasta de navegação exibida em um grupo de navegação.

Utilizando uma combinação dessas coleções, você pode enumerar cada pasta de navegação para um módulo de navegação exibido no Painel de Navegação.

O exemplo a seguir conta o número de pastas de navegação selecionadas para exibição no módulo de navegação Calendário do Painel de Navegação. O exemplo executa as seguintes ações:

  1. Primeiro, o exemplo obtém uma referência ao objeto NavigationPane para o explorador ativo.

  2. Em seguida, ele usa o método GetNavigationModule da coleção NavigationModules para obter uma referência ao objeto CalendarModule do objeto NavigationPane .

  3. Em seguida, o exemplo é enumerado por meio da coleção NavigationGroups do objeto CalendarModule . Para cada NavigationGroup na coleção, o exemplo enumera a coleção NavigationFolders .

  4. Se a propriedade IsSelected de um objeto NavigationFolder contida na coleção NavigationFolders for definida como True, a variável intCounter será incrementada.

  5. Por fim, o exemplo exibe uma caixa de diálogo que contém o valor de intCounter.

Dim WithEvents objPane As NavigationPane 
 
Private Sub EnumerateActiveCalendarFolders() 
 Dim objModule As CalendarModule 
 Dim objGroup As NavigationGroup 
 Dim objFolder As NavigationFolder 
 Dim intCounter As Integer 
 
 On Error GoTo ErrRoutine 
 
 ' Get the NavigationPane object for the 
 ' currently displayed Explorer object. 
 Set objPane = Application.ActiveExplorer.NavigationPane 
 
 ' Get the CalendarModule object, if one exists, 
 ' for the current Navigation Pane. 
 Set objModule = objPane.Modules.GetNavigationModule(olModuleCalendar) 
 
 ' Iterate through each NavigationGroup contained 
 ' by the CalendarModule. 
 For Each objGroup In objModule.NavigationGroups 
 ' Iterate through each NavigationFolder contained 
 ' by the NavigationGroup. 
 For Each objFolder In objGroup.NavigationFolders 
 ' Check if the folder is selected. 
 If objFolder.IsSelected Then 
 intCounter = intCounter + 1 
 End If 
 Next 
 Next 
 
 ' Display the results. 
 MsgBox "There are " & intCounter & " selected calendars in the Calendar module." 
 
EndRoutine: 
 On Error GoTo 0 
 Set objFolder = Nothing 
 Set objGroup = Nothing 
 Set objModule = Nothing 
 Set objPane = Nothing 
 intCounter = 0 
 Exit Sub 
 
ErrRoutine: 
 MsgBox Err.Number & " - " & Err.Description, _ 
 vbOKOnly Or vbCritical, _ 
 "EnumerateActiveCalendarFolders" 
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.