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


Перечисление активных папок в представлении календаря

В Microsoft Outlook можно просмотреть иерархию групп и папок модуля в области навигации с помощью коллекций NavigationGroups и NavigationFolders . Коллекция NavigationGroups объекта NavigationModule содержит каждую группу навигации, отображаемую в модуле навигации, а коллекция NavigationFolders объекта NavigationGroup содержит каждую папку навигации, отображаемую в группе навигации.

Используя эти коллекции в сочетании, можно перечислить каждую папку навигации для модуля навигации, отображаемого в области навигации.

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

  1. Пример сначала получает ссылку на объект NavigationPane для активного обозревателя.

  2. Затем он использует метод GetNavigationModule коллекции NavigationModules для получения ссылки на объект CalendarModule из объекта NavigationPane .

  3. Затем пример перечисляет коллекцию NavigationGroups объекта CalendarModule . Для каждой NavigationGroup в коллекции пример перечисляет коллекцию NavigationFolders .

  4. Если свойство IsSelected объекта NavigationFolder , содержащегося в коллекции NavigationFolders , имеет значение True, переменная intCounter увеличивается.

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