如何将Word文档的内容作为纯文本电子邮件发送?

时间:2015-02-09 14:57:44

标签: vba outlook ms-word

我有一个Word文档(保存为启用宏的模板),允许用户使用下拉框填写“休假”表单。它的设置是通过电子邮件向主管发送带有请求的附件;但是,文档在使用时会自行保存,这可能会向查看表单的下一个人显示敏感信息。

是否可以将文档内容作为纯文本发送到电子邮件正文中(我们使用的是Outlook),以便不必保存文档?或者是否有一个添加功能,允许电子邮件发送,然后重置内容然后重新保存?

这是我目前的代码:

Private Sub CommandButton21_Click()
  Dim OL As Object
  Dim EmailItem As Object
  Dim Doc As Document
  Application.ScreenUpdating = False
  Set OL = CreateObject("Outlook.Application")
  Set EmailItem = OL.CreateItem(olMailItem)
  Set Doc = ActiveDocument
  Doc.Save
  With EmailItem
    .Subject = "TIME OFF REQUEST"
    .Body = "THE ATTACHED DOCUMENT IS A DAY OFF REQUEST"
    .To = "Email"
    .Importance = olImportanceNormal
    .Attachments.Add Doc.FullName
    .Send
  End
  With Application.ScreenUpdating = True
  Set Doc = Nothing
  Set OL = Nothing
  Set EmailItem = Nothing
End Sub

1 个答案:

答案 0 :(得分:1)

Document类的Content属性返回表示主文档故事的Range对象。 Text属性返回范围的纯文本,未格式化的文本。所以,这是您要寻找的代码:

.Body = ActiveDocument.Content.Text

请注意,Outlook使用Word作为电子邮件编辑器。您可以使用Word对象模型来操作邮件正文。您可以在Chapter 17: Working with Item Bodies

中详细了解相关内容

最后,您可能会发现How to automate Outlook from another program文章很有帮助。