0

我有一个用户收到了系统生成的电子邮件,该电子邮件采用字体格式,这样当它在 Outlook 中呈现时,文本列不会对齐。我知道它需要什么字体,并且它已安装在用户的 PC 上。在groupwise中,他可以在收到消息后简单地更改字体,一切都很好。但是,Outlook(我们最近移至)中似乎没有此功能。

Microsoft 论坛上建议的修复方法是在收到消息时使用规则运行 VBA 脚本,并将消息转换为 RTF,然后设置字体。

这是我第一次涉足 VBA,虽然我过去做过几个小的 vb 脚本,所以我可能从一开始就偏离了基础,但这是我尝试过的。

Sub TestMessageRule(Message As Outlook.MailItem)
    Set Message.BodyFormat = 3
End Sub

我收到一个错误,“无效使用属性”,所以我猜你不能那样改变它。通过使用以下代码向自己发送测试电子邮件,我得到了 1=Plain text、2=HTML 和 3=Rich Text:

Sub TestMessageRule(Message As Outlook.MailItem)
    MsgBox Message.BodyFormat
End Sub

所以,问题是,我怎样才能正确更改 BodyFormat 属性,或者有什么更好的方法可以解决这个问题?

然后,如果您感觉特别好,也许您可​​以向我指出如何更改正文的字体。

谢谢,布莱恩

这是最终对我有用的方法:

Sub TestMessageRule(Message As Outlook.MailItem)
    Dim BodyString As String
    Message.BodyFormat = olFormatHTML
    BodyString = Replace(Message.HTMLBody, "<FONT SIZE=2>", "<FONT SIZE=3 FACE=""COMIC SANS MS"">")
    Message.HTMLBody = BodyString
    Message.Save
End Sub

显然,Comic Sans MS 不是我想要的最终字体,但它非常适合测试。再次感谢您的帮助!

4

1 回答 1

0

设置标量属性时不要使用“set”:

Message.BodyFormat = 3

话虽如此,只需读取纯文本 Body 属性并使用它来构造具有指定字体的适当格式的 HTML,然后设置 HTMLBody 属性。

于 2013-03-14T21:55:58.720 回答