VBA-将宏添加到选项卡(进阶版)

VBA-将宏添加到选项卡(进阶版)

  • 缘起
  • 方法
  • 关于插件制作

缘起

之前分享了简易方法。应大家的需求,分享一个进阶的方法。这里说它是进阶,一是最后达到的效果可以做到更多元化,二是这样做出来的选项卡不会被轻易初始化,三是操作起来略复杂,涉及了Office选项卡实现原理,Office文件的储存原理还有回调函数等。

方法

  1. 首先,新建一个xlsm格式的文件,这里我们一起新建全名叫TestFunc.xlsm的文件
  2. 在这个文件的VBE中插入模块。出于演示目的,我们就简单地写一个叫做OwnFunc的sub——大家在自己做的时候可以用自己的代码替换MsgBox (“Mscro worked.”)
Sub OwnFunc(control As IRibbonControl)
    MsgBox ("Mscro worked.")
End Sub
  1. 保存关闭后,用重命名的方式将文件改为.zip文件,变成TestFunc.zip
    Office文件从2007版开始本质上就是一个压缩包,并且是采用xml储存数据及设置,感兴趣的朋友可以了解一下xml文件和新型Office文件的储存原理。
  2. 打开压缩包后,在其中添加一个名为“customUI”的文件夹,并且在这个文件夹里面存入一个叫做“customUI.xml”的UTF-8编码的xml文件,此文件中应该有以下内容
    这些内容的作用就是规定自定义添加的选项卡以及其中的组别、按钮等,不过可以调整的属性比简易版方法更多(如size等)






而且这里可以添加的控件的种类也很多,这里只是用button为例子,更多的种类可以参考下图:
在这里插入图片描述
5. 和刚刚添加的customUI文件夹同级有一个名为“_rels”的文件夹,进入此文件夹,打开“.rels”文件,在最后一个“


  1. 最后,你的压缩包应该长这个样子
    VBA-将宏添加到选项卡(进阶版)_第1张图片
    保存在压缩包做的修改,然后将文件名改回TestFunc.xlsm。打开文件,点击多出来的那个笑脸,OwnFunc里设定的程序就运行起来了。

关于插件制作

这样的六步走下来,一个进阶版的选项卡就可以设置好了。另外文中提及的是制作自定义的xlsm文件,如果想做成插件,操作是一样的,只是操作的文件要另存为xlam,之后在别的机器上使用时需要做的就是将定义好的插件xlam文件导入就可以。关于ImageMSO,我从网络上找到一个大全,老规矩放在了下载模块,名字叫Office2007IconsGallery;同时也在公众号上提供百度云下载链接。![在这里插入图片描述](https://img-blog.csdnimg.cn/20190922125259147.jpg

你可能感兴趣的:(VBA,VBA)