我正在尝试通过Outlook中的VBA将多个子通讯组列表添加为父通讯组列表的成员。我正在使用Outlook 2010。
Sue Mosher在线发布的基本代码(其中objItem是子DL,通过For / Next循环发现)是:
Set objRecipient = Application.Session.CreateRecipient(objItem.Subject)
objRecipient.Resolve
objDistributionList.AddMember objRecipient
然而,这实现了将子DL添加为“联系人”而不是链接到原始子DL的成员(即,当我打开父DL中的成员(应该是子DL)时) ,它显示为带有“未知”电子邮件地址的电子邮件联系人。)
有什么想法吗?
答案 0 :(得分:2)
您无法在Outlook对象模型中执行此操作 您可以尝试使用公开Redemption的RDODistListItem。AddContact方法 - 它可以让您传递ContactItem以及DistListItem对象作为参数。
答案 1 :(得分:0)
事实证明,在VBA中实际上可以 进行此操作,尽管它有点round回,我无法解释它为什么起作用。
通过将子通讯组列表添加到邮件项对象的“收件人”字段中,它将邮件项的收件人解析为通讯组列表。然后,您可以将这些收件人添加到父级通讯组列表中。请注意,这要求子列表仍然单独存在,即。如果子列表被删除,则父列表将无法找到
Sub NestedDistLists()
Dim outApp As Object
Dim outMail As Object
Dim distRecipients As Object
Dim distListChild As Object
Dim distListParent As Object
Set outApp = CreateObject("Outlook.Application")
Set outMail = outApp.createItem(0)
Set distListChild = outApp.createItem(7)
Set distListParent = outApp.createItem(7)
Set distRecipients = outMail.recipients
distListChild.dlName = "Test Child"
distRecipients.Add "john@example.com"
distRecipients.resolveall
distListChild.addmembers distRecipients
distListChild.Save
outMail.to = distListChild
distListParent.dlName = "Test Parent"
distListParent.addmembers distRecipients
distListParent.Save
distListParent.display
End Sub