Как получить общую папку календаря с VBA (Outlook) - PullRequest
0 голосов
/ 09 марта 2020

Как я могу получить общую папку календаря в 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...