如何访问Excel VBA中的联系人组?

我正在构build一个Excel加载项,它将活动工作簿作为Outlook电子邮件模板中的附件发送到特定的联系人组。

我已经得到了前两部分使用下面的代码,但我不知道如何将.TO字段设置为联系人组。

 Public Sub Mail_Reports() Dim rng As Range Dim OutApp As Object Dim OutMail As Object With Application .EnableEvents = False .ScreenUpdating = False End With On Error Resume Next Set OutApp = CreateObject("Outlook.Application") 'Set this line to the path and file name of your template Set OutMail = OutApp.CreateItemFromTemplate("C:\Users\moses\AppData\Roaming\Microsoft\Templates\test.oft") On Error Resume Next With OutMail '.TO field should be set to the contact group .BCC = "" .Attachments.Add ActiveWorkbook.FullName .HTMLBody = Replace(OutMail.HTMLBody, strOldPeriod, strNewPeriod) .Subject = Replace(OutMail.Subject, strOldPeriod, strNewPeriod) 'To display the email leave as is; to send the Email, change to .Send .Display 'or Send End With On Error GoTo 0 With Application .EnableEvents = True .ScreenUpdating = True End With Set OutMail = Nothing Set OutApp = Nothing End Sub 

只需使用联系人组(以前称为“通讯组列表”)的名称即可。 我刚刚尝试过,正如Ron de Bruin的网站上所build议的那样。

为了让收件人的电子邮件地址或名称parsing(所以它们不显示纯文本),您可以执行以下操作。

 With OutMail '.TO field should be set to the contact group .BCC = "" .Attachments.Add ActiveWorkbook.FullName .HTMLBody = Replace(OutMail.HTMLBody, strOldPeriod, strNewPeriod) .Subject = Replace(OutMail.Subject, strOldPeriod, strNewPeriod) 'To display the email leave as is; to send the Email, change to .Send .Display 'or Send If Not .Recipients.ResolveAll Then For Each Recipient In .Recipients If Not Recipient.Resolved Then MsgBox Recipient.Name & " could not be resolved" End If Next End If End With