Я пытаюсь добавить события в календарь Outlook в общедоступном магазине (например, в магазине PF, который не принадлежит какому-либо конкретному пользователю)
Как ссылаться на эту папку (календарь), чтобы иметь возможность работать с элементами в ней?
Перечисление по пути (и приведенному ниже коду) занимает около двух минут, чтобы пройти путь вниз по нужной мне папке, а затем я не могу установить ссылку на него в исходной подпрограмме.
Перечисление адаптировано из MSDN здесь.
Public Function EnumerateFoldersInStores(ByVal searchFolder As String) As Outlook.Folder
Dim colStores As Outlook.Stores
Dim oStore As Outlook.Store
Dim oRoot As Outlook.Folder
On Error Resume Next
Set EnumerateFoldersInStores = Nothing
Set colStores = Application.Session.Stores
For Each oStore In colStores
Set oRoot = oStore.GetRootFolder
If oRoot.Name = searchFolder Then
Debug.Print (oRoot.FolderPath)
Set EnumerateFoldersInStores = EnumerateFolders(oRoot)
End If
Next
End Function
Private Function EnumerateFolders(ByVal oFolder As Outlook.Folder) As Outlook.Folder
Dim folders As Outlook.folders
Dim Folder As Outlook.Folder
Dim foldercount As Integer
On Error Resume Next
Set folders = oFolder.folders
foldercount = folders.Count
'Check if there are any folders below oFolder
If foldercount Then
For Each Folder In folders
Select Case Folder.Name
Case "All Public Folders"
Debug.Print (Folder.FolderPath)
EnumerateFolders Folder
Case "Sub-Location"
Debug.Print (Folder.FolderPath)
EnumerateFolders Folder
Case "Department"
Debug.Print (Folder.FolderPath)
EnumerateFolders Folder
Case "Division"
Debug.Print (Folder.FolderPath)
EnumerateFolders Folder
Case "Work-Group"
Debug.Print (Folder.FolderPath)
EnumerateFolders Folder
Case "Planning-Calendar"
' This is the folder I want to work with
Debug.Print (Folder.FolderPath)
Stop
Set EnumerateFolders = Folder
End Select
Next
End If
End Function
Полный путь: \\Public Folders - [email protected]\All Public Folders\Sub-Location\Department\Division\Work-Group\Planning-Calendar