使用自定义HTML代码替换Outlook下的文本选择的替代方法

Baa*_*pta 5 vba word-vba outlook-vba outlook-addin

我需要在使用自定义HTML代码编辑Outlook电子邮件时替换用户选择.

我尝试了两种方法:

使用剪贴板

  1. 在HTML模式下.
  2. Word.Range从中获取Word.Selection.
  3. 做一个range.Copy()把它放在剪贴板中
  4. 转换inputStringoutputString
  5. outputStringwith 替换选择range.PasteSpecial(...)

使用Open XML格式

  1. 在HTML模式下.
  2. Word.Range从中获取Word.Selection.
  3. 做一个range.Copy()把它放在剪贴板中.
  4. 转换inputStringoutputString(以Office Open XML格式,知道如何制作它以生成特定的HTML).
  5. outputStringwith 替换选择range.InsertXML(...)

问题是:

  1. 使用剪贴板时,它有时会崩溃.有关于检查剪贴板状态的参考,但我想我已经尝试了已知的替代方案.
  2. 要使用insertXML您需要安装Microsoft Word.insertXML单独安装Outlook 无法执行此操作.请看:没有Word 2007部署Outlook 2007的影响,以获取更多信息.

你知道更多的选择吗?我可以想到自己添加元素就像使用InsertParagraph,但我不确定我是否可以添加超链接或将遇到类似的问题.

Bla*_*awk 1

根据 msdn 的说法,HTMLEditor在 Outlook 2007 中已被弃用- 请参阅下面的第四部分“HTML 编辑器”。

从技术上讲,您仍然可以通过 访问 HTML MailItem.HTMLBody,但它只是一个读/写字符串值,因此您无法直接找出文本的哪一部分突出显示。

使用MailItem.getInspector.WordEditor,您可以找出突出显示的特定文本,然后通过 vba 的 ,在 HTMLBody 中查找并替换它Replace,周围是您的 html。

考虑到这是多么复杂,您可能希望WordEditor直接使用它来进行格式更改。我在您提供的链接中没有看到任何内容表明该WordEditor对象在独立的 Outlook 2007 安装中不可用,但我有完整的办公套件,因此我无法自己测试它。该网站描述了如何使用WordEditor.