来自非默认帐户分发列表的地址

时间:2016-02-03 18:40:00

标签: excel-vba outlook-vba vba excel

我正在使用MS Office 2010.我想从Outlook分发列表中获取成员详细信息。

我的Outlook配置了两个电子邮件ID。一个是客户另一个是公司。

我在Excel中有一个代码来检查分发列表并将详细信息导入Excel。

我可以从分发列表中导入默认邮件ID的详细信息。我无法从其他电子邮件中选择分发列表。它试图默认搜索DL并选择错误的名称。

这是我的代码

 Dim olApp As Outlook.Application  
 Dim olNS As Outlook.Namespace  
 Dim olAL As Outlook.AddressList  
 Dim olEntry As Outlook.AddressEntry  
 Dim olMember As Outlook.AddressEntry  
 Dim lMemberCount As Long  
 Dim objMail As Outlook.MailItem  

 Set olApp = Outlook.Application  
 Set olNS = olApp.GetNamespace("MAPI")  
 Set olAL = olNS.AddressLists("Global Address List")  

 Set objMail = olApp.CreateItem(olMailItem)  

 ' enter the list name  
 Set olEntry = olAL.AddressEntries(".DL IS Support")  

 ' get count of dist list members  
 lMemberCount = olEntry.Members.Count

1 个答案:

答案 0 :(得分:0)

Outlook对象模型不允许您针对特定AB容器解析名称。您需要使用扩展MAPI(C ++或Delphi),通过对该容器的内容表创建PR_ANR限制(IMAPITable::Restrict)。

如果使用Redemption是一个选项,则会公开允许针对给定容器解析名称的RDOAddressListResolveName / ResolveNameEx方法。可以从RDOSesion.AddressBook.AddressLists或从RDOExchangeAccount。GAL检索容器。可以从RDOSession.Accounts集合中检索RDOExchangeAccount对象。