一、什么是Office功能区
从2007版本开始,Office引入了功能区,各种工具或功能被塞入页面上方的条形区域,比之前菜单栏更加易于使用。
从2007版本开始,文档使用了标准化的XML语言,同时,功能区也支持自定义,自定义功能区也是标准化的XML语言。推荐使用软件OfficeRibbonXEditor进行自定义。
PS:感谢Github,感谢作者fernandreu。
二、示例:自定义功能区(RibbonX)
(1)利用OfficeRibbonXEditor建立一个自定义功能区,功能区中包括一个组,组内包括三个按钮,每个按钮绑定一个宏。
在软件中依次插入Office 2010+CustomUI(如Office为2007,需选择2007版本,但容易出现中文乱码的情况),插入XML-Excel示例。
然后点击生成回调,将回调过程代码插入原本的宏工作簿中。
(2)此外,值得注意的是,如果有很多button,则可以将CustomUI代码中每一个button增加Tag属性,同时对onAction属性使用相同内容,这个内容即是回调过程的过程名,这样一来,回调过程就简化成了统一的一段代码(见下),过程代码简化为调用名为botton.Tag的过程。
Sub call_subs(button As IRibbonControl)
Application.Run button.Tag
End Sub
PS:这个方法是之前在网上看到某位大神的写法,但忘记出处了,实属抱歉。
(3)imageMso属性也是个大坑,以后找机会单独出一篇来写。
(4)其他有关CustomUI的用法(语法等),可以参考微软官方技术文档Word, Excel, and PowerPoint Standards Support。另外,CustomUI这玩意往深了挖可能就跟VSTO有点关系了,本人还没开始入坑。