访问VBA中的O365组日历文件夹
我正在尝试编写一个宏,该宏将在O365组日历中创建约会。访问VBA中的O365组日历文件夹,vba,outlook,Vba,Outlook,我正在尝试编写一个宏,该宏将在O365组日历中创建约会。 如果当前文件夹是组日历,我可以创建约会。但是,我希望宏始终为组日历创建约会,而不考虑当前文件夹。 我看过其他关于在默认日历下访问共享日历和其他子文件夹的文章,但我找不到任何适用于组日历的内容 我试过这些东西: ' option1 Set calFolder = GetFolderPath("abc@email.com\Calendars\groupname") Set NameSpace = Application.Get
如果当前文件夹是组日历,我可以创建约会。但是,我希望宏始终为组日历创建约会,而不考虑当前文件夹。 我看过其他关于在默认日历下访问共享日历和其他子文件夹的文章,但我找不到任何适用于组日历的内容 我试过这些东西:
' 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 有没有办法使用此信息获取文件夹
您需要使用
GetSharedDefaultFolder
,但它的第一个参数是收件人
对象,而不是字符串。调用Namespace.CreateRecipient
(传递字符串),然后将该Recipient
对象传递到GetSharedDefaultFolder
感谢您的快速响应。我试过你的方法。但现在它给了我一个运行时错误:“服务器邮箱无法打开,因为此通讯簿条目不是邮件用户”如果单击“文件|打开|其他用户的文件夹”?在Outlook中是否使用相同的名称?给你。Exchange告诉您没有属于指定名称的邮箱。这是通讯组列表的名称吗?但它确实有一个邮箱。它有共享邮箱,也有自己的日历。Office 365组与通讯组列表不同。我能够发送和接收电子邮件,并在此日历上创建活动。我已经用文件夹结构更新了问题组,即使它们在Outlook UI中公开,也没有(至少还没有)通过OOM或MAPI公开-在MAPI级别上,有一个存储,但它不在会话存储表中。编辑问题以应用此建议,说明日历在文件夹树中的显示位置。也许是一个类似的图表。嗨,这里是office 365组。我们叫它abc吧。群电子邮件是abc@somedoamin.com在文件夹结构中,它是这样显示的:我的邮箱--Groups--abc也用这些信息编辑了这个问题。谢谢