Перечисление активных папок в представлении календаря
В Microsoft Outlook можно просмотреть иерархию групп и папок модуля в области навигации с помощью коллекций NavigationGroups и NavigationFolders . Коллекция NavigationGroups объекта NavigationModule содержит каждую группу навигации, отображаемую в модуле навигации, а коллекция NavigationFolders объекта NavigationGroup содержит каждую папку навигации, отображаемую в группе навигации.
Используя эти коллекции в сочетании, можно перечислить каждую папку навигации для модуля навигации, отображаемого в области навигации.
В следующем примере подсчитывается количество папок навигации, выбранных для отображения в модуле навигации Календарь области навигации. В примере выполняются следующие действия:
Пример сначала получает ссылку на объект NavigationPane для активного обозревателя.
Затем он использует метод GetNavigationModule коллекции NavigationModules для получения ссылки на объект CalendarModule из объекта NavigationPane .
Затем пример перечисляет коллекцию NavigationGroups объекта CalendarModule . Для каждой NavigationGroup в коллекции пример перечисляет коллекцию NavigationFolders .
Если свойство IsSelected объекта NavigationFolder , содержащегося в коллекции NavigationFolders , имеет значение True, переменная
intCounter
увеличивается.Наконец, в примере отображается диалоговое окно со значением
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
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.