【问题标题】:vba Outlook create an email based on a userform's data and a templatevba Outlook 根据用户表单的数据和模板创建电子邮件
【发布时间】:2017-12-15 08:20:27
【问题描述】:
我想创建一个宏:
1) 生成一个询问信息的用户表单
2) 显示一个模板,里面填写了刚刚写在用户表单中的信息
为此,我想知道是否可以像在 Word 中那样使用书签。我会创建一个带有书签的邮件模板,我可以在用户窗体的validation_click() 事件中替换它们。我在网上找不到任何示例,而且书签似乎不像在 Word 中那样工作(它们的显示方式不是“[bookmark1]”)
感谢您的帮助
【问题讨论】:
标签:
vba
email
templates
outlook
【解决方案1】:
您可以考虑在 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 文章可能对您有所帮助。
附: Outlook 使用 Word 作为电子邮件编辑器。因此,您可以在处理项目主体时使用 Word 对象模型。有关更多信息,请参阅Chapter 17: Working with Item Bodies。