如果关联名称包含字符串,如何从 Outlook VBA 的全局地址列表中提取电子邮件地址

问题描述

第一次海报!我试图从 Outlook 的全局地址列表中的条目中提取电子邮件地址,以便在我的 VBA 代码中引用。我需要输入一个项目代码,因此代码需要查看 gal 并找到在名称中找到项目代码的条目。当它发现这一点时,我需要它返回关联的电子邮件地址 (PrimarySMTPAddress)。如果不是,我需要它说“找不到项目代码”。

我对 VBA 很陌生,所以我不能把这个想法写进代码中。任何帮助表示赞赏。

谢谢。

解决方法

使用创建 Namespace 对象的 Recipient 类的 CreateRecipient 方法。此方法最常用于创建与 Recipient 方法一起使用的 GetSharedDefaultFolder 对象,例如,打开委托人的文件夹。它还可用于根据地址簿验证给定名称。

Sub ResolveName()
 Dim myNamespace As Outlook.NameSpace
 Dim myRecipient As Outlook.Recipient
 Dim CalendarFolder As Outlook.Folder
 Set myNamespace = Application.GetNamespace("MAPI")
 Set myRecipient = myNamespace.CreateRecipient("Project Name 0001") 
 
 myRecipient.Resolve 
 
 If myRecipient.Resolved Then 
   Call ShowCalendar(myNamespace,myRecipient)
 End If 
End Sub 
 
Sub ShowCalendar(myNamespace,myRecipient) 
 Dim CalendarFolder As Folder 
 Set CalendarFolder = myNamespace.GetSharedDefaultFolder(myRecipient,olFolderCalendar) 
 CalendarFolder.Display 
End Sub