尝试将收到的Outlook电子邮件转换为富文本,并设置字体

时间:2013-03-14 21:49:39

标签: outlook-vba

我有一个用户接收系统生成的电子邮件,该电子邮件使用字体格式化,以便在Outlook中呈现时,文本列不会对齐。我知道它需要什么字体,它安装在用户的PC上。在groupwise中,他能够在收到消息之后简单地更改消息上的字体并且一切都很顺利。但是,似乎在Outlook(我们最近转移到)中没有这方面的功能。

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

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

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

我收到了一个错误,“无效使用属性”,所以我猜你不能这样改变它。通过使用此代码发送自己的测试电子邮件,我得到1 =纯文本,2 = HTML,3 =富文本:

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不是我想要的最终字体,但它非常适合测试。再次感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

设置标量属性时请勿使用“set”:

Message.BodyFormat = 3

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