Office 自定义 UI:忽略自定义并在 XML 中检测到错误...0x80070057 参数不正确

问题描述 投票:0回答:1

我尝试为我的一个 Office 文档自定义 Office 功能区,如“使用 Office Open XML 格式文件自定义 Fluent UI”一章中所述

理论上它应该添加一个新选项卡和一个按钮,但是当我打开此文档时,我总是收到此错误(注意:我激活了 Office 选项以通过 Backstage 视图(文件)> 选项 > 高级选项 > 常规 > 显示添加查看错误-用户界面错误):

在自定义 UI XML 代码中检测到错误...第 1 行列...错误代码 0x80070057 - 参数不正确。

这是包含错误消息的弹出窗口(注意:我有法语版 Office):


新标签根本不显示。

使用 Excel 文档失败,但我也尝试使用 Word 和 PowerPoint 执行此操作,并得到了完全相同的错误。

以下是我对

Classeur1.xlsx

 添加选项卡所做的更改(将其后缀重命名为 .zip,操作其内容,然后将其重命名回 .xlsx):

  • _rels/.rels
    中,我在
    </Relationships>
    之前添加了这一行:
    
    <Relationship Type="http://schemas.microsoft.com/office/2006/relationships/ui/extensibility" Target="customUI/customUI.xml" Id="customUIRelID"/>
    
    
  • 我创建了
  • customUI/customUI.xml
    <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"> <ribbon> <tabs> <tab id="MyTab" label="My Tab"> <group id="MyGroup" label="My Group"> <button id="MyButton" label="MyButton" onAction="MyMacro"/> </group> </tab> </tabs> </ribbon> </customUI>
    
    
注意:我知道还必须创建子例程“MyMacro”,并且 Excel 文件要保存为类型

.xlsm

,但我只想建议重现的最小情况,单击按钮不是这里的问题。 

我的 Excel、Word 和 PowerPoint 版本:Office 365 版本 2008(内部版本 13127.20408 Office“即点即用”)。

编辑:这是版本的屏幕截图(注意:我的问题后2天,它已自动升级到版本2009 Build 13231.20262),我现在还没有收到错误


Office subscription 365 PowerPoint version 2009Office subscription 365 PowerPoint version 2009

excel ms-word powerpoint ms-office ribbon
1个回答
2
投票
错误是

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

对于订阅365的版本“2008”无效 - 我不会假装它是Office 2008,这只是我所看到的,就像现在的“2009”(请参阅我的问题中的屏幕截图)——即使 Steve Rindsberg 怀疑 2008 和 2009 版本是否会出现,很抱歉没有截取屏幕截图——希望我能在这篇 Windows 博客文章中找到提到 
版本“2008”的屏幕截图
windows office with version 2008 !?

相反,我将命名空间

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

 与关系结合使用,使用关系命名空间 
http://schemas.microsoft.com/office/2006/relationships/ui/extensibility>
:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <ribbon> <tabs> <tab id="MyTab" label="My Tab"> <group id="MyGroup" label="My Group"> <button id="MyButton" label="MyButton" onAction="MyMacro"/> </group> </tab> </tabs> </ribbon> </customUI>
现在,我打开时就可以成功看到“我的选项卡”了

Classeur1.xlsx


原因

Ron de Bruin 在

https://rondebruin.nl/win/s2/win001.htmedit 2024:参见 archive.org)中提到,同时介绍 Office RibbonX 编辑器,这是必须选择两个版本:

    插入 Office 2010+ 自定义 UI 部分
  • 插入 Office 2007 自定义 UI 部分
所以我猜测根据Office版本(无论是否在365订阅下)都有对应的命名空间。请注意,[MS-CUSTOMUI] 和 [MS-CUSTOMUI2] Microsoft 标准中提到的

_rels\.rels

 也有不同的命名空间。

    2010+ (
  • [MS-CUSTOMUI2])
      自定义用户界面:
    • <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
      
      
    • 来源关系:
    • http://schemas.microsoft.com/office/2007/relationships/ui/extensibility
      
      
  • 2007-2009 (
  • [MS-CUSTOMUI])
      自定义用户界面:
    • <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
      
      
    • 来源关系:
    • http://schemas.microsoft.com/office/2006/relationships/ui/extensibility
      
      
(*) PS:我不确定 2010 年的两个命名空间的组合是否对我的订阅 365 版本“2008”有效进行了正确测试。史蒂夫在评论中说它应该有效,因为它是订阅365. 我无法再测试“2008”,因为我的 Office 版本自动升级到版本 2009,并且 2010 命名空间可以工作。

© www.soinside.com 2019 - 2024. All rights reserved.