1

我分发了一个带有大型 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 一起使用吗?

4

2 回答 2

3

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

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

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

G

于 2013-03-16T00:06:22.847 回答
0

我自己还没有这样做,但是从 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 。

于 2013-03-15T15:35:19.967 回答