将word文档的内容作为邮件正文发送时保留文本格式,

Preserve text format when sending the content of a word document as the body of an email,

我正在尝试将 word 文档的内容作为 outlook 电子邮件的正文发送,但碰巧文本的格式(粗体、颜色等)在插入电子邮件后丢失了.

我也试过用word文档作为信封项,确实保留了原来的格式,但是.Display方法在这种情况下不起作用。

下面是我的代码

     bodi = wdDoc3.Content

     With wdApp.ActiveDocument

    .SaveAs ThisWorkbook.Path & "./Past email/Email generated on" & "-" & Format(Date, "dd mmmm yyyy") & ".doc"
    .Close

    End With

 Set Mail_Object = CreateObject("Outlook.Application")
 Set Mail_Single = Mail_Object.CreateItem(0)


With Mail_Single

 .Display

 End With

 signature = Mail_Single.body

 With Mail_Single
 .To = arr2(2, 1)
 .Subject = arr2(1, 1)
 .CC = arr2(3, 1)
 .Bcc = arr2(4, 1)
 .body = bodi & vbNewLine & signature

以下是我在网上找到的使用envelop方法的代码,但是.display或者.visible方法并没有让outlook弹出window。它只是直接发送电子邮件,这不是我想要的。

set itm=wddoc3.mailenvelope.item
with itm
.to=""
.subject=""
.display

这里的.display不工作

end with

我该如何解决这个问题,或者有其他方法可以保留文本格式吗?

MailItem Body 属性 class returns 或设置表示 Outlook 项目的明文正文的字符串。要保留任何格式,您需要使用 HTML 正文或文字编辑器。

Outlook 对象模型为工作项正文提供了三种主要方式:

  1. Body - 表示 Outlook 项目的明文正文的字符串。
  2. HTMLBody - 表示指定项目的 HTML 正文的字符串。
  3. Word editor - 正在显示的消息的 Microsoft Word 文档对象模型。 Inspector 的 WordEditor 属性 class returns 来自 Word 对象模型的文档 class 实例,您可以使用它来设置邮件正文。

您可以在 Chapter 17: Working with Item Bodies 中阅读有关所有这些方式的更多信息。

因此,您可以轻松地使用 Word 编辑器设置邮件正文,而不会丢失任何格式。