我有一个用户接收系统生成的电子邮件,该电子邮件使用字体格式化,以便在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不是我想要的最终字体,但它非常适合测试。再次感谢您的帮助!
答案 0 :(得分:0)
设置标量属性时请勿使用“set”:
Message.BodyFormat = 3
话虽如此,只需读取纯文本Body属性并使用它来构造具有指定字体的适当格式化的HTML,然后设置HTMLBody属性。