Как я могу получить общую папку календаря в Outlook / VBA?
Я попробовал несколько опций. Итак, вот мои мысли. Я могу получить его с помощью идентификатора записи, когда я go в календаре.
с помощью
MsgBox ActiveExplorer.CurrentFolder.EntryID
я узнаю идентификатор записи. Затем с кодом:
currFolder_entryID = " THE ENTRY ID"
Set CalendarFolder = currFolder_entryID
Это работает ... но проблема в том, что Идентификатор входа изменяется каждый раз, когда меняется элемент. Мне нужен способ получать папку каждый раз без ручного получения идентификатора.
Я пытался. https://docs.microsoft.com/de-de/office/vba/api/outlook.namespace.getshareddefaultfolder
Sub ResolveName()
Dim myNamespace As Outlook.NameSpace
Dim myRecipient As Outlook.Recipient
Dim CalendarFolder As Outlook.Folder
Set myNamespace = Application.GetNamespace("MAPI")
Set myRecipient = myNamespace.CreateRecipient("Dan Wilson")
myRecipient.Resolve
If myRecipient.Resolved Then
Call ShowCalendar(myNamespace, myRecipient)
End If
End Sub
Sub ShowCalendar(myNamespace, myRecipient)
Dim CalendarFolder As Outlook.Folder
Set CalendarFolder = _
myNamespace.GetSharedDefaultFolder _
(myRecipient, olFolderCalendar)
CalendarFolder.Display
End Sub
Но это не работает. Но, может быть, я даже не знаю получателя или правильное пространство имен. Если это должно работать, как я получу получателя? Он не работал с электронной почтой из календаря.
Во-первых, я получаю календари с открытым календарем, а затем открываю общий календарь. У меня была ссылка.
Я также пытался
Sub CalendarDemo()
Dim objPane As Outlook.NavigationPane
Dim objModule As Outlook.CalendarModule
Dim objGroup As Outlook.NavigationGroup
Dim objNavFolder As Outlook.NavigationFolder
Dim CalendarFolder As Folder
Dim oItems As Items
Set objPane = Application.ActiveExplorer.NavigationPane
Set objModule = objPane.Modules.GetNavigationModule(olModuleCalendar)
Set objGroup = objModule.NavigationGroups.item("My Calendars")
For Each objNavFolder In objGroup.NavigationFolders
MsgBox objNavFolder.DisplayName
Next
End Sub
Здесь я получаю имя, но если я хочу выбрать папку, я получаю сообщение об ошибке, на которое у меня нет разрешения. это.
Folder = objNavFolder.Folder