0

我在 MS Word 2007 功能区中创建了一个自定义选项卡。该选项卡及其所有功能都可以正常工作,并保存在启用宏的模板中。但是,在基于此模板创建新文档时,将其保存为普通 Word 文档或启用宏的文档然后关闭它:当我重新打开此文档文件时,自定义选项卡已复制自身!

由于这是在严重锁定的计算机和网络上开发的,因此我可以使用的工具相当有限。我仅限于用于 XML 方面的自定义 UI 编辑器工具和 VBA。我已经包含了创建工具栏的 XML 的开头。如果使用限定选项卡 ID,则选项卡内容在同一选项卡中重复。如果使用非限定选项卡名称,则整个选项卡会在功能区中复制自身。

我对此完全不知所措。自定义工具栏的两个实例都可以正常工作 - 只是其中有两个实例,而且很多人都会使用这个模板!

<?xml version="1.0" encoding="UTF-8" standalone ="yes"?>
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
  <ribbon>
    <tabs>
    <tab id="rxTabCompanyName"
    label="Company Name Toolbar"
    insertBeforeMso="TabHome"
    tag="CompanyNameToolbarTag">
    <group id="rxgrpCompanyNameReportStyles"
           label="Report Text Styles">
      <box id="rxboxStyleX"
           boxStyle="horizontal">
        <menu id="rxmnuAllStyles"
              label="All Styles"
              supertip="List all styles"
              showLabel="true"
              image="AtkStyles"
              size="normal">

ETC...

任何建议将不胜感激。

4

5 回答 5

0

我认为您的问题是因为您基于模板(*.dotx 或 *.dotm)创建了一个新文档,并且该模板包含用于显示功能区选项卡的功能区 XML。新文档也将包含相同的 XML,并将显示它自己版本的功能区选项卡。

我建议您创建两个模板文件:

  • 一个包含功能区 XML 和响应用户操作、加载列表等所需的任何代码。将此模板复制到 Office 安装的 STARTUP 文件夹。

  • 第二个只是一个空白 dotx,没有任何代码或功能区,但具有您想要的外观和内容。

根据第二个模板创建新文档。

于 2013-03-04T14:26:49.833 回答
0

您是否在不同版本的 MS-Word 中打开并创建了新文档。如果模板是在早期版本中创建的,我已经看到使用 MS-Word 2010 会发生重复。

我已经对功能区命名空间进行了额外的引用,以便在 2007 年或 2010 年加载功能区:

customUI xmlns="http://schemas.microsoft.com/office/2009/07 / customui "

代替:

customUI xmlns=" http://schemas.microsoft.com/office/2006/01/customui

Ron de Bruin 的提示解释了 Excel 的类似问题: http ://www.rondebruin.nl/ribbonx20072010.htm

于 2013-03-07T02:18:44.937 回答
0

您是否正在创建基于“dotm”模板的新文档?或者您是否正在打开“docm”文件(用作模板)并将其保存为新名称?

与 Excel 不同,Word 将新文档链接到其模板,因此当它基于模板 (dotm) 时,功能区不会复制到新的“实例化”文档。

但是,如果您使用“docm”文件作为模板,则(文档级别)功能区将被复制到“另存为”文件中。

这可能不是正在发生的事情,但这是一种可能性。

于 2013-03-10T14:18:37.213 回答
0

是否找到了解决此问题的方法,因为我遇到了同样的问题,即我的 .docm 仍然包含 customui?

我对 word 文档和模板的理解是文档(.docx 和docm)不包含功能区自定义,而模板(.dotx 和.dotm)包含。

我已经使用 customui 编辑器删除了自定义,但仍然想知道为什么这个启用宏的特定文档保留了自定义选项卡,因为如果我使用全新的模板测试这种情况,所有后续文档都不包含 customui。

于 2013-07-02T10:07:03.493 回答
0

同样的问题在这里......我不知道它什么时候发生。但我想分享我的解决方法来修复很多文件。这是一个小 vba 脚本,用于删除目录中每个文件中的(加倍的)自定义功能区。确保 .dotm 文件不在目录中!

Private Sub remover()
Dim re As String
Dim docdir As String

Dim fs As Object
Dim fVerz As Object
Dim docFiles As Object
Dim docFile As Object

Dim wdApp As Object
Dim wdDoc As Object

docdir = "C:\your\destination\path"

Set fs = CreateObject("scripting.FileSystemObject")
Set fVerz = fs.getFolder(docdir)
Set docFiles = fVerz.Files

'loop all files
For Each docFile In docFiles
    If InStr(docFile, "") > 0 Then
        re = Shell("zip """ & docFile & """ -d ""*customUI.xml""", vbNormalFocus)
    End If
Next docFile 
End Sub
于 2018-06-07T12:28:21.637 回答