Ribbon XML Editor 2022.04.12-Setup.exe

Ribbon XML Editor

是一款用于书写和测试customUI XML代码的国产工具,具有XML验证、Office文档压入、回调函数查询等多种功能。

可作为定制Office自定义界面有关程序开发的辅助工具。

 

 

点击下载

https://share.weiyun.com/R3QI4yfl

进入工具大全文件夹,找到如下安装包,下载即可。

 

 

 

免费课程: https://edu.51cto.com/course/23587.html

安装过程: 

修改历史:

2021年11月28日

发现微软提供的回调大全,有部分函数不对,因此增加了VB.NET语言的回调。

2021年12月1日

对于在WPS中生成的Office文档,打开和压入功能出现异常,进行了功能修复。

2022年4月12日

帮助文件从help.chm修改为help.pdf

 

customUI回调函数的一些看法

回调函数最权威的定义,来自于微软MSDN下面的这篇文章。

Customizing the 2007 Office Fluent Ribbon for Developers (Part 3 of 3)

https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2007/aa722523(v=office.12)

该网页对于每个控件都提供了C#、VBA、C++、Visual Basic这四种语言的回调格式,因为VB6和VB.NET都可以制作COM加载项,那么这里的Visual Basic指的是谁呢?前几年我认为VB6和VB.NET的回调格式完全相同。

然而,这里面的所有回调函数中,有两处很值得怀疑。

第一处是customUI的onLoad对应的函数:

 

对于C#语言,返回的类型是void,如果转换为VB.NET显然是个不返回任何值的Sub过程。那么红色框里面的,是说VB6必须写成Function?还是怎么回事?后来我验证,VB.NET中,写成

Public Function OnLoad(ribbon As IRibbonUI)或者写成Public Sub OnLoad(ribbon As IRibbonUI)均可。既然没有返回值,写成Function就没什么意义。我估计在VB6中也是一样的,不是必须要写成Function。

因此,在Ribbon XML Editor 2021/11/28中把VB6和VB.NET的回调分成了两个菜单。但是从总体看,确实这两个语言对应的回调格式别无二致,可以认为写法相同。

第二个问题:dropDown控件的getSelectedItemID回调的返回类型

这个函数的功能,是用于自动指定下拉框中被选中的是哪一个Item。假设功能区中有这样一个下拉框:

 

 微软提供的回调大全,注意最下面的Visual Basic返回的是Integer?从customUI的定义看出,每个item的id属性显示都是文本,为什么返回Integer?

 

再看看C#的回调,返回类型是string,那么VB.NET是什么类型呢?我经过多次测试,发现本来就是String,写成As Integer是错误的。此外,该回调函数还有一个兄弟getSelectedItemIndex,它的功能与上述相同,但是用户可以指定一个序号,例如自动选择“块参照”,可以让这个函数返回序号1,所以这个函数类型是Integer没错。

这样一对比,应该是写MSDN的人犯晕了,getSelectedItemID每个语言对应的回调函数返回值都应该是String。VB6或VB.NET的写法如下:

Public Function DropDown2_GetSelectedItemID(control As Office.IRibbonControl) As String

  Return "LINE"

End Function

返回值Return "Line"表示自动选中“直线”那个项目。

WPS的影响

前几天,我用Ribbon XML Editor向一个扩展名为.xlsm的文档中压入XML代码时,出现了“一个意外错误是您无法移动该文件”。

 

一开始以为是我软件的Bug,后来通过仔细排查,发现这个.xlsm的文档是WPS软件生成、或者是在WPS软件中保存过的。继续测试.docx、.pptx等文件,只要是WPS创建或保存的文档,都出现上述错误对话框。而微软的Office文档不存在上述问题。

但是,光从文件名、扩展名没法判断一个文档是不是WPS创建的,后来我修改了软件,修改日期为2021/12/1,这个版本可以解决上述意外错误。

另外,WPS软件的表格、文档、演示文稿的扩展名有很多个,除了常规的.xlsx之类的,还有.et  .wps .dps等奇葩的扩展名,Ribbon  XML Editor没必要为了这些不同的扩展名而不断地被迫修改。

另外,WPS的customUI,还有如下两个细节需要注意:

①对于定制了自定义界面的文档,以压缩包形式 打开该文档,里面的文件夹名称是userCustomization,不是CustomUI。即使原先的名称是CustomUI,在WPS中保存后,就自动变成了userCustomization。

②即使把微软的.pptx文档中压入自定义界面,这个文件在WPS中打开,居然不显示相应的界面!具体不知道原因。会不会是WPS的演示文稿不支持customUI。

总结一下,Ribbon XML Editor软件几乎从刚刚发布,对于未经过WPS保存的Office文档,打开和压入XML就不存在问题。 如果您从来不和WPS软件打交道,那么使用Ribbon XML Editor 2021/11/28这个版本就没问题。如果您还想往WPS创建的文档中正常地压入XML,需要使用Ribbon XML Editor 2022/04/12。

posted @ 2018-05-09 19:20  ryueifu  阅读(7542)  评论(2编辑  收藏  举报