使用VBA,在Word 2003中打开扩展名不是.docx或.docm的OpenXML格式(.docx)文档



我有一个Word加载项,它以OpenXML格式写入和读取Word文档,即.docx.

但是,为了让我可以很容易地将"我的"文档识别为普通的Word.docx文件,我使用了另一个扩展名,称之为.myx(或.mym,用于启用宏的文档)。

这一切在Word2007和Word2010中都能很好地工作,我认为它在Word2003(安装了兼容包)中也能工作。

但是Word 2003在打开扩展名为.docx的文档时,不会打开.myx文档,除非我将其重命名为.docx.

当我尝试使用VBA时,我已经为WdOpenFormat枚举使用了许多看起来很明显的值,但似乎没有任何帮助。

我真的必须将我的扩展名更改为.docx才能让Word 2003打开它吗?

答案是Office 2007兼容包只是Word的另一个"文本转换器",.docx和.docm扩展似乎是Word用来调用该文本转换器的。

然而,本文处理了在Word2003环境中保存为.docx的问题,并给出了如何打开文档的提示。使用该链接中定义的宏作为指南,以下是(在C#中)如何为打开文档找到正确的"OpenFormat"值的要点:

using MSWord = Microsoft.Office.Interop.Word;
...
private object GetOpenFormat(bool macroEnabled) {
  object result = MSWord.WdOpenFormat.wdOpenFormatAuto; /* default in case can't find the real value */
  string formatName = (macroEnabled? "Word 2007 Macro-enabled Document": "Word 2007 Document");
  foreach(MSWord.FileConverter converter in _msWordInstance.FileConverters) {
    if(string.Compare(converter.FormatName, formatName, true) == 0) {
      if(converter.CanOpen) {
        result = converter.OpenFormat;
        break;
      }
    }
  }
  return result;
}

最新更新