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

时间:2011-07-06 05:52:27

标签: vba outlook-addin word-vba outlook-vba

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

我尝试了两种方法:

使用剪贴板

  1. 在HTML模式下。
  2. Word.Range获取Word.Selection
  3. 执行range.Copy()将其放入剪贴板
  4. inputString转换为outputString
  5. 使用outputString
  6. 替换range.PasteSpecial(...)选项

    使用Open XML格式

    1. 在HTML模式下。
    2. Word.Range获取Word.Selection
    3. 执行range.Copy()将其放入剪贴板。
    4. inputString转换为outputString(在Office Open XML格式中,知道如何制作它以生成特定的HTML)。
    5. 使用outputString
    6. 替换range.InsertXML(...)选项

      问题是:

      1. 使用剪贴板时,有时会崩溃。有关于检查剪贴板状态的参考,但我想我已经尝试了已知的替代方案。
      2. 要使用insertXML,您需要安装Microsoft Word。单独安装Outlook时无法执行insertXML。请查看:Impact of deploying Outlook 2007 without Word 2007以获取更多信息。
      3. 你知道更多的选择吗?我可以考虑使用InsertParagraph自己添加元素,但我不确定是否可以添加超链接或遇到类似的问题。

1 个答案:

答案 0 :(得分:1)

根据msdn,HTMLEditor已经deprecated in Outlook 2007 - 请参阅第四部分,“HTML编辑器”。

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

使用MailItem.getInspector.WordEditor,您可以找到突出显示的特定文字,然后通过vba的Replace在HTML框架中查找并替换它,并在您的html旁边。

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