Vba 确保通讯组列表中的联系人同时显示姓名和电子邮件地址
如何确保添加到Outlook通讯组列表中的联系人同时显示姓名和电子邮件地址?这些联系人可能不存在于任何其他通讯簿中,只存在于通讯组列表中。目前,它们仅显示为电子邮件地址(在两列中) 下面是我们使用的VBA的大致情况:Vba 确保通讯组列表中的联系人同时显示姓名和电子邮件地址,vba,outlook,distribution-list,Vba,Outlook,Distribution List,如何确保添加到Outlook通讯组列表中的联系人同时显示姓名和电子邮件地址?这些联系人可能不存在于任何其他通讯簿中,只存在于通讯组列表中。目前,它们仅显示为电子邮件地址(在两列中) 下面是我们使用的VBA的大致情况: Do Until RS.EOF //here's where we want to inject RS!FirstName, RS!Surname etc objRecipients.Add RS!Email objRec
Do Until RS.EOF
//here's where we want to inject RS!FirstName, RS!Surname etc
objRecipients.Add RS!Email
objRecipients.Resolve
RS.MoveNext
Loop
Set objDistList = contactsFolder.Items.Add("IPM.DistList")
objDistList.DLName = "Whatever"
objDistList.AddMembers objRecipients
objDistList.Save
etc
我认为您必须为每个收件人创建一个ContactItem,以便您可以定义名称。下面是一个例子:
Sub testdistlist()
Dim oRecips As Recipients
Dim ciDist As DistListItem
Dim ci As ContactItem
Dim mi As MailItem
Set mi = Application.CreateItem(olMailItem)
Set oRecips = mi.Recipients
Set ciDist = Application.CreateItem(olDistributionListItem)
'replace this with your recordset loop
Set ci = Application.CreateItem(olContactItem)
ci.FirstName = "John"
ci.LastName = "Lennon"
ci.Email1Address = "jlennon@example.com"
ci.Save
oRecips.Add ci.FullName
Set ci = Application.CreateItem(olContactItem)
ci.FirstName = "Ringo"
ci.LastName = "Starr"
ci.Email1Address = "rstarr@example.com"
ci.Save
oRecips.Add ci.FullName
'end replace
ciDist.AddMembers oRecips
ciDist.Save
ciDist.Display
mi.Close olDiscard
End Sub
多亏了迪克·库斯莱卡的回答,但他给了我一个想法,有一个更简单的方法 这只是在通讯组列表的条目中使用尖括号。如
中的“Ringo Starr”
这很好用
因此,我最初的示例如下所示:
objRecipients.Add RS!FullName & "<" & RS!Email & ">"
objRecipients.Add RS!全名&“