使用Outlook模板和设置variables从Excel 2007 VBA发送电子邮件

我有一个数据列表,让我们说客户端信息(姓名,电子邮件,欠金额等),存储在一个Excel工作表。 我的目标是在Excel中单击一个button,并在Outlook模板中向每个客户发送他们的信息。

  1. 创build一个邮件对象
  2. 将邮件对象设置为模板文件
  3. 设置,然后用关于当前客户端的数据填充模板 – 大多停留在这里,不知道如何指定模板中的variables,然后在VBA中与它们关联
  4. 保存到草稿供以后审查/发送

例如。 亲爱的<clientname> =亲爱的约翰·史密斯

我的代码到目前为止:

Dim myOlApp As Outlook.Application Dim MyItem As Outlook.MailItem Set myOlApp = CreateObject("Outlook.Application") Set MyItem = myOlApp.CreateItemFromTemplate("C:\egTemplate.oft") With MyItem .To = Worksheets("Clients").Range(1, 2) .Subject = "Monthly bill" 'Refer to and fill in variable items in template .Save End With Set MyItem = Nothing Set MyOlApp = Nothing 

我需要知道,如果这是可能的,我可以做到没有插件,如果是这样,有没有人知道我可以遵循的一个很好的链接/教程?

在此先感谢和亲切的问候

更新添加了我的代码,并对请求进行了一些更改

以下是你可以做的事情:

 With MyItem 'Refer to and fill in variable items in template .Body = Replace(.Body, "<< clientname >>", Worksheets("Clients").Range(1, 2)) End With 

或者,如果您的邮件是HTML:

 With MyItem 'Refer to and fill in variable items in template .HTMLBody = Replace(.HTMLBody, "&lt;&lt; clientname &gt;&gt;", Worksheets("Clients").Range(1, 2)) End With 

在Excel / Outlook 2007上成功testing

这是邮件合并的完美工作。 如果您想以编程方式执行此操作,请参阅

邮件合并在Word + Excel中使用VBA

或者你可以简单地手动(从Word),插入合并域,然后select您的工作簿作为数据源。 您可以合并到电子邮件,Outlook将使用每行/logging中的信息向每个收件人的电子邮件发送个性化电子邮件。