前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VBA编写Ribbon Custom UI编辑器03——认识Ribbon的xml

VBA编写Ribbon Custom UI编辑器03——认识Ribbon的xml

作者头像
xyj
发布2020-08-18 11:31:21
1.9K0
发布2020-08-18 11:31:21
举报
文章被收录于专栏:VBA 学习VBA 学习VBA 学习
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
 <ribbon>
  <tabs>
   <tab id="TabID" label="tabName" insertAfterMso="TabDeveloper">

    <group id="GroupID" label="GroupName">
     <button id="Button1" label="buttonname&#13;" size="large" onAction="Macro" imageMso="HappyFace"/>
    </group>

   </tab>
  </tabs>
 </ribbon>
</customUI>

这是一个很简单的Ribbon customUI.xml代码,能实现的菜单如下:

  • 一个新的菜单tab,名称为tabName
  • 一个组group,名称为GroupName
  • 一个按钮button,名称为buttonname

制作自定义的Ribbon菜单,一般主要用到的就是上面3个东西。

当然我们关注的不是说主要用哪几个东西,而是Ribbon xml的编写格式,这个格式的文本如何转换为一个二维数组,然后输出到Excel表格:

输出到了Excel表格,才能在Excel里去编辑它。

编辑好之后,还要考虑如果将Excel表格上的内容,转换为Ribbon xml的编写格式,重新写入到Office文件中。

01

解析功能

元素:紧跟在『<』后面的customUI、ribbon、tabs、group、button,这些被称作xml的元素,xml这种语言没有限制元素的名称,但是Ribbon中还是有限制的,针对某个版本来说,肯定是固定的。

但是写一个程序,必须要考虑到以后,一旦Ribbon的xml语言升级更新了,支持的元素名称多了,程序还要保证能够正确运行,所以不能在程序里固定写死元素。

这样不管Ribbon的xml有什么更新,只要它是满足xml语言的编写规范,这个解析的功能都能够将相应的文本输出到Excel中去。

<…………>:一对括号内的内容,对应的也就是要输出到Excel单元格中的一行内容。

属性:括号内除去元素之外,剩下的都是xx="yy"这种形式的东西,这个称作元素的属性,xx是属性的名称,yy是属性的值。

对应的就是属性名称输出到Excel单元格的第一行,属性的值输出到元素所在行、属性所在列的单元格。

02

还原功能

还原功能就是将Excel单元格中的内容,转换为xml的文本。

HasChild这个属性并不是Ribbon的xml语言内容,是为了方便还原的时候,正确还原那些允许包含子控件的元素,这些元素的结束标记都是单独的,如例子中的:

</group>

 </tab>
  </tabs>
 </ribbon>
</customUI>

而其他控件的格式是这样的<…………/>

这个还原功能应该就比较简单了,只要循环每一个行的内容:

  • 判断对应列的属性值是否为空,不为空的时候,添加一些固定的文本
  • 然后前面添加括号标记<…………>
  • 最后再全部连接到一个文本

xml语言的知识建议到网上找些资料先看看,了解一下。本人也基本没使用过xml语言,只是在自定义Excel Ribbon的时候用用,了解的也比较浅,个人觉得下面这个网站讲的还比较浅显易懂:

https://www.w3school.com.cn/xml/index.asp

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-08-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 VBA 学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档