在VBA中访问O365组日历文件夹

时间:2018-08-29 21:28:29

标签: outlook-vba

我正在尝试编写一个将在O365组日历中创建约会的宏。
如果当前文件夹是组日历,则可以创建约会。但是,我希望宏始终为组日历创建约会,而不管当前文件夹如何。 我查看了有关在默认日历下访问共享日历和其他子文件夹的其他文章,但是找不到任何适用于组日历的内容。

我已经尝试过这些事情:

    ' option1
  Set calFolder = GetFolderPath("abc@email.com\Calendars\groupname")
  Set NameSpace = Application.GetNamespace("MAPI")
  ' option 2
  Set calFolder = NameSpace.GetDefaultFolder(9).Folders("groupname")
  NameSpace.GetSharedDefaultFolder("groupemail", olFolderCalendar)
  Set Items = calFolder.Items
  ' option 3  
  Set Items = Application.Session.GetDefaultFolder(olFolderCalendar).Parent.Folders("groupname").Items

这是Office 365组。让我们称之为abc。群组电子邮件为abc@somedoamin.com

在文件夹结构中,它看起来像这样:

  

我的邮箱

     
    

-组

         
      

-abc

    
  

赞赏任何指针。预先感谢!

编辑: 我在调试器中找到的组的结构如下:

命名空间
|
地址列表
|
 |
  项目7:名称:所有组
   |
   地址条目
    |
    条款18:名称:abc

是否可以使用此信息来获取文件夹?

Screenshot of structure under namespace

1 个答案:

答案 0 :(得分:0)

您需要使用GetSharedDefaultFolder,但是它的第一个参数是Recipient对象,而不是字符串。调用Namespace.CreateRecipient(传递一个字符串),然后将该Recipient对象传递给GetSharedDefaultFolder