【问题标题】:How to migrate Word ribbon tab from 2007/2010 to 2013如何将 Word 功能区选项卡从 2007/2010 迁移到 2013
【发布时间】:2013-03-15 04:26:55
【问题描述】:

我分发了一个包含大型 VBA 代码库的 Word 模板。该模板包括一个菜单,对于 Word 2007/2010 用户,还有一个功能区选项卡。在 Word 2013 中,通过菜单一切正常,但功能区未显示。我仍然在不使用 Visual Studio 的情况下使用 VBA 进行编码(并且不想购买 VSTO)。所以我想弄清楚如何更新我的功能区代码/xml,或者我需要做什么才能让我的功能区选项卡在 2013 年出现。

当用户基于模板创建新文档时,功能区会从模板复制到新文档中。但是 Word 2013 中的该过程出现了问题。 有趣的是,如果我打开以前从我的模板(在 Word 2010 中)创建的文档,功能区会显示并正常工作。但是,如果我从模板创建一个新的 Word 2013 文档,功能区就不存在。

我必须在我的代码中做一些事情来告诉 Word 在基于我的模板的新文档中显示功能区,但我无法找到该信息。

我一直使用“Office 自定义 UI 编辑器”生成功能区,这在 Word 2013 中不可用;该工具将xml“插入”到模板中。我的功能区 XML 以此开头:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="SERibbon_Load">
    <ribbon startFromScratch="false">
        <tabs>

有人知道如何让我的功能区选项卡与 Word 2013 一起使用吗?

【问题讨论】:

    标签: vba ms-word ribbon


    【解决方案1】:

    好吧,事实证明我的功能区或代码确实没有问题。安装模板的安装程序代码为使用 Word 2003 或更早版本的用户安装“.dot”模板(不带功能区),并为较新版本的 Word 安装“.dotm”模板(带功能区)。然后它会在用户的开始菜单上设置模板的快捷方式。

    安装程序代码无法识别已安装 Word 2013,并断定用户正在使用 Word 2003,因此创建了模板的无功能区版本的快捷方式。我将快捷方式更改为指向“.dotm”版本,一切都很好。所以事实证明,我的自定义功能区选项卡在 Word 2007/2010/2013 中运行良好。我只需要修复我的安装程序以检测是否安装了 Word 2013(注册表中的版本“15”)。

    命名空间在 2010 年明显改变,但向后兼容 2007。2010 向命名空间添加了一些东西,2013 年添加了新东西,但我的理解是它是相同的架构,因此也向后兼容 Word 2007 功能区定义。

    G

    【讨论】:

      【解决方案2】:

      我自己还没有这样做,但请从 msdn 中查看此线程:http://social.msdn.microsoft.com/Forums/en-US/officegeneral/thread/6575cee8-796a-40da-9520-24c5161f7600

      看起来命名空间是一样的,但是一些属性值可能已经改变了。您可能需要检查文档以查看您的ribbonXML 是否符合要求:http://www.microsoft.com/en-us/download/details.aspx?id=727

      【讨论】:

      • 谢谢克里斯蒂娜。非常有用的链接。我会在周末做一些工作,如果它(我希望它会)导致 Word 2013 中的工作功能区,我会记入您的答案。
      猜你喜欢
      • 2017-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-15
      • 1970-01-01
      • 2010-12-24
      相关资源
      最近更新 更多