通过Excel VBA一次发送一封电子邮件

时间:2017-07-27 20:53:49

标签: excel vba excel-vba outlook outlook-vba

我正在使用MS Excel和Outlook 2013.我正在尝试自动化使用Outlook将5封电子邮件发送到指定地址的Excel电子表格。

技巧是我希望每条消息一次显示一条消息,只有当用户点击发送或关闭消息时才转到下一条消息。以下是我到目前为止的情况:

    Sub Send_Emails()

    Dim OutApp As Object: Set OutApp = CreateObject("Outlook.Application")
    Dim OutMail As Object: Set OutMail = OutApp.CreateItem(0)

   'Send Email
   With OutMail
      .to = "john.doe@mycompany.com"
      .Subject = "This is the Subject"
      .Body = "This is message"
      .Display
   End With

   On Error Resume Next:
   OutMail = Nothing
   OutApp = Nothing
   End Sub

   Sub Send_Five_Emails()
   For i = 1 To 5 'Send email 5 times
       Call Send_Emails
   Next i
   End Sub

此代码的问题在于它一次显示所有5个消息窗口。有没有办法让一个消息窗口的Close事件触发显示下一个消息窗口,以便让它们一次出现一个?

我很感激帮助。

1 个答案:

答案 0 :(得分:0)

使用 .Display (True)

expression.Display(Modal) 参数用于除ExplorerMAPIFolder个对象之外的所有对象, True 使窗口模态。 默认值为False

See Display Method on MSDN