不幸的是,这不是仅用VBA就可以实现的。
在扩展MAPI级别(仅限C++或Delphi),可以对特定搜索容器(如GAL)的内容表创建PR\ANR限制。当Outlook解析您在“收件人”编辑框中键入的名称时,它会遍历搜索路径中的所有容器并应用PR\ANR限制。如果找到多个匹配项,则会显示一个包含列表的对话框。如果存在单个匹配项,则返回该匹配项并停止搜索,否则将继续搜索路径中的下一个容器。
但是,Outlook对象模型不公开此功能。如果使用
Redemption
(任何语言)都是一种选择
RDOAddressBook
.ResolveNameEx和
RDOAddressList
.ResolveNameEx,返回匹配项列表。
set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
set AdrrEntries = Session.AddressBook.ResolveNameEx("john")
Debug.Print AdrrEntries.Count & " names were retruned by ResolveNameEx:"
Debug.Print "------------"
for each AE in AdrrEntries
Debug.Print AE.Name
next
Debug.Print "------------"