当我使用 Outlook VBA 从纯文本更改回复邮件格式时的行为与使用格式化文本/格式/HTML 菜单时的行为不同。
我的原始外发邮件,在点击回复按钮后看起来如下:
如果我然后单击 HTML 按钮,它仍然完全相同 ,
除了将格式更改为 HTML 之后我可以更改字体、大小等。
但是如果我改为使用宏更改格式
...BodyFormat = olFormatHTML
(见底部的完整代码)然后
- 前导空行被删除
- 邮件标题被删除
- 字体更改为
Times New Roman 10
有没有办法获取 UI 行为?
宏体如下:
Sub ChangeToTextStyle()
Dim objItem As Object
Dim objMail As MailItem
On Error Resume Next
Set objItem = Application.ActiveInspector.CurrentItem
If Not objItem Is Nothing Then
If objItem.Class = olMail Then
Set objMail = objItem
objMail.BodyFormat = olFormatHTML
End If
End If
End Sub
更新
跟随 Eugene 的 answer 之后的小问题:
在更改格式之前插入 objMail.Save
会保留标题和空行,但字体会更改为 Times New Roman 而不是 Lucida Console,这是我在撰写和阅读纯文本的选项中设置的短信。原始文本以 10pt 显示,光标位于 12pt。我如何
- 将邮件中所有文本的字体更改为 Lucida Console 9.5pt
?
- 将光标处的颜色更改为 wdDarkRed
?
最佳答案
您似乎需要保存 邮件项并关闭检查器窗口以将更改应用到 UI。 Outlook 不会立即在 UI 中反射(reflect)更改。有时您需要重新打开邮件。
关于vba - 将邮件格式更改为 html 时如何获取 UI 行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27304906/