Excel VBA 字符串数组到 Outlook 电子邮件 "To" 字段

Excel VBA array of strings to Outlook email "To" field

我正在尝试创建一个宏,它将从我的 Excel sheet 中获取一列电子邮件地址,并填充 Outlook 电子邮件中的 "To" 字段。我有基本的工作原理,并且能够使用我指定的各种字段值创建新的 Outlook 电子邮件消息 - 但是,我无法弄清楚如何将多个电子邮件地址填充到 "To" 字段中,对于单个电子邮件。

截至目前,我能够创建包含所有所需电子邮件地址的数组,但无法弄清楚如何将数组值填充到 Outlook "To" 字段中。

这可能会有所帮助,但关于项目的概念有点不同。希望这会有所帮助 - 过去曾用于类似情况,但当然只会提供 maproad。

Sub CreateMail()

Dim objOutlook As Object
Dim objMail As Object
Dim rngTo As Range
Dim rngCc As Range
Dim rngSubject As Range
Dim rngBody As Range

Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)

With ActiveSheet
    Set rngTo = .Range("B1")
    Set rngCc = .Range("B2")
    Set rngSubject = .Range("B3")
    Set rngBody = .Range(.Range("B4"), .Range("B4").End(xlDown))
End With
rngBody.Copy

With objMail
    .To = rngTo.Value
    .Cc = rngCc.Value
    .Subject = rngSubject.Value
    .Display
End With
SendKeys "^({v})", True

Set objOutlook = Nothing
Set objMail = Nothing
Set rngTo = Nothing
Set rngCc = Nothing
Set rngSubject = Nothing
Set rngBody = Nothing

End Sub

您可以使用 MailItem class 的 Recipients 属性 添加多个收件人。它还允许指定收件人的类型:收件人、抄送或密件抄送。

Sub CreateStatusReportToBoss()  
  Dim myItem As Outlook.MailItem  
  Dim myRecipient As Outlook.Recipient  
  Set myItem = Application.CreateItem(olMailItem)  
  Set myRecipient = myItem.Recipients.Add("Dan Wilson")  
  myItem.Subject = "Status Report"  
  myItem.Display  
End Sub

这是基于 Eugene 的回答,经过编辑以包含 excel 实现

Sub CreateStatusReportToBoss(addRng as Excel.Range)  
  Dim myItem As Outlook.MailItem  
  Dim myRecipient As Outlook.Recipient  
  Set myItem = Application.CreateItem(olMailItem)
  For Each cell in addRng
     Set myRecipient = myItem.Recipients.Add(cell.Value)
  Next cell  
  myItem.Subject = "Status Report"  
  myItem.Display  
End Sub