VBA-Excel如何在Outlook中查找Exchange用户的电子邮件地址

时间:2015-06-26 20:51:54

标签: excel vba excel-vba outlook

我一直在尝试根据输入名称导入联系人的电子邮件。我不擅长宏编程,但找到了一个有效的代码。但是它只能通过查找contacts文件夹中的信息来工作,我需要它来查找全局地址列表中的联系人,然后返回与该人员相关联的电子邮件。我搜索过其他帖子,他们都希望从outlook中获取所有联系人并将其粘贴到excel。我只想根据输入的名称搜索一个人的全局地址列表,并让它返回该人的电子邮件。

这就是我所拥有的:

$("#direcciones-envio-usuario").change(function(){
     alert($(':selected', this).attr('id'));
});

任何信息都有帮助

1 个答案:

答案 0 :(得分:3)

您可以使用Namespace.CreateRecipient / Recipient.Resolve来解析实例的名称,而不是遍历 所有 “联系人”文件夹中的项目收件人对象。然后,您可以使用AddressEntry.GetContact将其解析为ContactItem对象或AddressEntry.GetExchangeUser的实例,以获取ExchangeUser对象的实例:

Set olA = New Outlook.Application
Set olNS = olA.GetNamespace("MAPI")
set olRecip = olNS.CreateRecipient("Dmitry Streblechenko")
olRecip.Resolve
set olAddrEntry = olRecip.AddressEntry
set olCont = olAddrEntry.GetContact
if not (olCont Is Nothing) Then
  'this is a contact
  'olCont is ContactItem object
  MsgBox olCont.FullName
Else
  set olExchUser = olAddrEntry.GetExchangeUser
  if not (olExchUser Is Nothing) Then
    'olExchUser is ExchangeUser object
    MsgBox olExchUser.StreetAddress
  End If
End If