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

时间:2014-07-09 09:07:57

标签: vba outlook outlook-vba

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

以下代码打印本地联系人列表中所有通讯组列表中的所有成员,但正如我所提到的,对于某些通讯组列表,它只会自行打印。

示例结果如下所示: PDL - sampleList PDL - sampleList - 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

1 个答案:

答案 0 :(得分:0)

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