vba Outlook根据用户表单的数据和模板创建电子邮件

时间:2017-07-11 10:16:22

标签: vba email templates outlook

我想创建一个宏:

1)生成要求信息的用户表单

2)显示一个模板,其中填充了刚刚在userform

中写入的信息

为此,我想知道是否可以使用Word中的书签。我会创建一个带有书签的邮件模板,我可以在userform的validation_click()事件中替换它们。我在Web上找不到任何示例,书签似乎没有像Word中那样工作(它们看起来不像“[bookmark1]”)

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

您可以考虑在Outlook中创建模板。 MailItem的SaveAs方法允许将项目保存为磁盘上的模板:

 Sub CreateTemplate() 
  Dim MyItem As Outlook.MailItem 

  Set MyItem = Application.CreateItem(olMailItem) 
  MyItem.Subject = "Status Report" 
  MyItem.To = "Eugene Astafiev" 
  MyItem.Display 
  MyItem.SaveAs Environ("HOMEPATH") &; "\My Documents\statusrep.oft", OlSaveAsType.olTemplate 
 End Sub

在模板中,您可以定义以后可以替换的占位符(创建新项目时)。 Application类的CreateItemFromTemplate方法从Outlook模板(.oft)创建一个新的Microsoft Outlook项目并返回新项目。

Sub CreateFromTemplate() 
 Dim MyItem As Outlook.MailItem 

 Set MyItem = Application.CreateItemFromTemplate("C:\statusrep.oft", _ 
   Application.Session.GetDefaultFolder(olFolderDrafts)) 
 MyItem.Save 
End Sub

您可能会发现How To: Create a new Outlook message based on a template文章有用。

P.S。 Outlook使用Word作为电子邮件编辑器。因此,您可以在处理项主体时使用Word对象模型。有关详细信息,请参阅Chapter 17: Working with Item Bodies