使用VBA检索嵌套Outlook通讯组列表的成员

使用VBA检索嵌套Outlook通讯组列表的成员,vba,outlook,Vba,Outlook,我想检索Outlook通讯组列表的成员。其中大多数只包含联系人。然而,奇怪的是,我发现其中一些能够自我控制。在Outlook中双击这些文件时,我可以看到它们的成员,但我无法找到在VBA中访问这些文件的可能性 下面的代码将打印本地联系人列表中所有通讯组列表中的所有成员,但正如我所提到的,对于某些通讯组列表,它将只打印他们自己 示例结果如下所示: PDL-样本列表 PDL-样本列表-sampleList@company.com Sub test() Dim objDistList As DistL

我想检索Outlook通讯组列表的成员。其中大多数只包含联系人。然而,奇怪的是,我发现其中一些能够自我控制。在Outlook中双击这些文件时,我可以看到它们的成员,但我无法找到在VBA中访问这些文件的可能性

下面的代码将打印本地联系人列表中所有通讯组列表中的所有成员,但正如我所提到的,对于某些通讯组列表,它将只打印他们自己

示例结果如下所示: PDL-样本列表 PDL-样本列表-sampleList@company.com

Sub test()

Dim objDistList As DistListItem

Const olFolderContacts = 10

Set objOutlook = CreateObject("Outlook.Application")
Set objNamespace = objOutlook.GetNamespace("MAPI")

Set colContacts = objNamespace.GetDefaultFolder(olFolderContacts).Items
intCount = colContacts.Count

For i = 1 To intCount
    If TypeName(colContacts.Item(i)) = "DistListItem" Then
        Set objDistList = colContacts.Item(i)
        Debug.Print objDistList.DLName
        For j = 1 To objDistList.MemberCount
    Debug.Print objDistList.GetMember(j).Name & " -- " & objDistList.GetMember(j).Address
        Next
    End If
Next

End Sub

检查GetMember返回的Recipient.DisplayType是否为OlDisplayType.olPrivateDistList类型如何?然后您将知道如何将其解析为DL中的嵌入式DL