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:
Primeiro, o exemplo obtém uma referência ao objeto NavigationPane para o explorador ativo.
Em seguida, ele usa o método GetNavigationModule da coleção NavigationModules para obter uma referência ao objeto CalendarModule do objeto NavigationPane .
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 .
Se a propriedade IsSelected de um objeto NavigationFolder contida na coleção NavigationFolders for definida como True, a variável
intCounter
será incrementada.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.