最近在公司用到EXCEL需要导入用友U8的数据。所以就想着把这功能做成EXCEL的插件形式。虽然最后没有用上,但是这些知识学习了一下。记下来备用。也可以给还在找这方面资料的同学一起学习一下。

在公司写的。可能会有点乱。excel自定义菜单选项有两种方法:

1、借用OfficeCustomUIEditor 工具的

参考:http://www.exceltip.net/thread-4190-1-1.html

2、不借用任何工具,纯VBA环境下自定义EXCEL 菜单选项卡。

参考:http://club.excelhome.net/forum.php?mod=viewthread&tid=729624&extra=page%3D1%26filter%3Ddigest%26digest%3D1%26digest%3D1


这两篇文章都写的很好很详细。


我用的是第一种方法。第二种方法我没时间测试研究了。因为项目放弃了。我也只能研究到这里,把这点知识记录下来。


1、安装OfficeCustomUIEditor  官网下载地址:

http://www.rondebruin.nl/win/s2/win002.htm

http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2006/05/26/customuieditor.aspx

这是最新版的,可惜项目已经停止更新了。

1、新建一个EXLS文件,打开,另存为EXCEL自定义菜单.xlsm

EXCEL自定义菜单,做插件必备。

用安装好的Custom UI Editor打开xlsm文件


EXCEL自定义菜单,做插件必备。

EXCEL自定义菜单,做插件必备。

EXCEL自定义菜单,做插件必备。

或者直接选择customUI.xml这个空白文档,在右侧插入如下代码:

[html] view plain copy
  1. <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">  
  2.   
  3.   
  4.  <!-- 这里需要注意的是添加的菜单TAB的位置是有insertAfterMso= 这个参数决定的。具体位置可以参照-->  
  5.  <!-- 添加的TAB位置可选的值是:insertAfterMso="TabHome"   insertAfterMso="TabInsert"   insertAfterMso="TabPageLayoutExcel"  -->  
  6.  <!-- 添加的TAB位置可选的值是:insertAfterMso="TabFormulas"     insertAfterMso="TabData"   insertAfterMso="TabReview"  -->  
  7.  <!-- 添加的TAB位置可选的值是:insertAfterMso="TabView"     insertAfterMso="TabDeveloper"    -->  
  8.   
  9. <ribbon startFromScratch="false">  
  10. <tabs>  
  11. <tab id="MyCustomTab" label="U8_Inport" insertAfterMso="TabDeveloper">  
  12. <group id="customGroup1" label="First Tab">  
  13. <button id="customButton1" label="JG Button 1" imageMso="HappyFace" size="large" onAction="Callback1" />  
  14.   
  15.  <!--这里需要注意的是自定义图标的图片规格:should be 16X16, large 32X32, at 96dpi.  -->  
  16.   
  17. <button id="customButton2" label="JG Button 2" imageMso="PictureBrightnessGallery" size="large" onAction="Callback2" />  
  18. </group>  
  19. </tab>  
  20. </tabs>  
  21. </ribbon>  
  22. </customUI>  


这里需要注意的是Custom UI Editor该工具只支持英文,中文显示乱码。

然后我们来自定义图标。需要注意的是图标的大小和格式。上面已经写清楚了。

[html] view plain copy
  1. 图片规格:should be 16X16, large 32X32, at 96dpi  
EXCEL自定义菜单,做插件必备。

这里特别需要提醒注意的是如果选择的是系统图标的话用的标签是:imageMso="HappyFace"

如果是自定义图标的话,标签是:image="change"  这个我研究了很长时间,最后在上文的图片中才发现问题。然后保存。关闭。我们打开EXCEL自定义菜单.xlsm来看一下效果

EXCEL自定义菜单,做插件必备。

看这就是我们自己做的图标啦。哦。对了。还有程序介绍一下。

[html] view plain copy
  1. onAction="Callback1"这个是按下按钮后所调用的函数名称。想要按下按钮实现什么效果。就这样。  
[html] view plain copy
  1. 我们先点一下看。发现问题。  
[html] view plain copy
  1. <img src="https://img-blog.csdn.net/20160804092848532" alt="" />  
[html] view plain copy
  1. 然后启用宏  
[html] view plain copy
  1. </pre><pre name="code" class="html">  
[html] view plain copy
  1. <img src="https://img-blog.csdn.net/20160804093000152" alt="" />  

打开Visual Basic编辑器,或者ALT+F11EXCEL自定义菜单,做插件必备。

插入模块。模块名称随便写,好像没有管理关系。比如我取个xiaolian。

打开xiaolian模块,插入如下代码。

然后保存,在按那个EXCEL图标,返回EXCEL界面。

我们来测试一下效果。EXCEL自定义菜单,做插件必备。


好了。在此,EXCEL自定义菜单图标就算告一段落。有兴趣的同学还可以研究一下这个

[html] view plain copy
  1. group的位置,好像可以任意位置。具体我还没时间研究出来。  
[html] view plain copy
  1. 参考文献:<a target=_blank href="http://powerspreadsheets.com/custom-excel-ribbon/">http://powerspreadsheets.com/custom-excel-ribbon/</a>  
[html] view plain copy
  1. 搜索  

相关文章: