如何利用Outlook VBA将从非VBA程序粘贴的纯文本设置为斜体?
解决方案
方法1:利用Outlook内置的Word编辑器操作(推荐)
Outlook的邮件正文本质是Word文档,可借助Word对象模型实现光标定位、粘贴和格式设置,逻辑和Word操作完全一致:
- 提前将需要粘贴的纯文本复制到剪贴板
- 运行以下VBA代码:
Sub PasteAndFormatItalic() Dim currMail As MailItem Dim wordEditor As Word.Document Dim selRange As Word.Selection ' 获取当前正在编辑的邮件 Set currMail = ActiveInspector.CurrentItem ' 获取邮件对应的Word编辑对象 Set wordEditor = currMail.GetInspector.WordEditor ' 在光标位置粘贴剪贴板内容 wordEditor.Application.Selection.Paste ' 选中刚粘贴的内容(粘贴后默认选中状态就是刚粘贴的文本) Set selRange = wordEditor.Application.Selection ' 设置为斜体 selRange.Font.Italic = True End Sub
注意:需提前在VBA编辑器中引用Microsoft Word xx.x Object Library(路径:工具→引用)
方法2:插入带HTML标签的文本片段(无需剪贴板)
如果能提前给文本加上<i>标签,可直接将这段HTML插入到现有邮件的HTML内容中,避免覆盖整个邮件:
Sub InsertItalicHtml() Dim currMail As MailItem Dim targetText As String Dim originalHtml As String ' 替换成你要插入的带斜体标签的文本 targetText = "<i>你的纯文本内容</i>" Set currMail = ActiveInspector.CurrentItem originalHtml = currMail.HtmlBody ' 将新内容插入到邮件正文末尾(若要插入到光标位置,优先用方法1) currMail.HtmlBody = Replace(originalHtml, "</body>", targetText & "</body>") End Sub
内容的提问来源于stack exchange,提问作者Dana B
相关产品推荐
相关产品推荐

