前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >方式一:Excel Addin_加载宏,自定义选项卡(自定义Excel菜单栏)

方式一:Excel Addin_加载宏,自定义选项卡(自定义Excel菜单栏)

作者头像
一线编程
发布2019-07-22 15:23:27
2.6K0
发布2019-07-22 15:23:27
举报
文章被收录于专栏:办公魔盒

在写之前我们先来了解写excel文件的结构;我们选择用360压缩打开excel文件;发现它可以打开(说明excel其实就是一个压缩文件);今天我们要做的就是在excel文件里面添加自定义选项UI文件和文件夹;

首先我们要准备一个customUI文件夹,在customUI文件夹里面添加一个_rels文件夹和images文件夹和一个customUI.xml文件;在文件夹里面建一个customUI.xml.rels文件;在images文件夹里面添加需要用的图标;文件结构见下图;

customUI.xml.rels文件内容:用于添加图标路径

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8" standalone="true"?>

-<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">

<!--图标1-->


<Relationship Target="images/img_vbxymA.jpg" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Id="img_vbxymA_JPG"/>

<!--图标2-->


<Relationship Target="images/img_vbxymB.jpg" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Id="img_vbxymB_JPG"/>

<!--图标2-->


<Relationship Target="images/img_vbxymC.jpg" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Id="img_vbxymC_JPG"/>

</Relationships>

customUI.xml用于添加菜单栏按钮,和自定义选项卡的内容(上面已经有相关注释)

代码语言:javascript
复制
<?xml version="1.0"?>

<!--RibbonX Visual Designer 1.93 for Microsoft Excel 12.0. XML Code produced on 2014/07/08-->

<!--更多精彩内容,请移步微信公众号:VB小源码-->

<!--更多教程文件下载请加QQ群;关注微信公众号获取群号!-->

<!--onLoad:初始化时要运行的宏; 程序事件示例:Public Sub vb_cs(Ribbon As IRibbonUI)''代码内容 End sub -->

-<customUI onLoad="vb_cs" xmlns="http://schemas.microsoft.com/office/2006/01/customui">


-<ribbon startFromScratch="false">

<!--菜单集合-->



-<tabs>

<!--菜单表信息 id:随意填写(注意不能重复)insertBeforeMso:添加菜单位置(默认tabhome)label:菜单名称 -->



-<tab label="VB小源码Addin菜单示例" insertBeforeMso="TabHome" id="tab_vbxym">

<!--下面为菜单组列表-->


<!--菜单组1信息 id:随意填写(注意不能重复)label:组名称 -->



-<group label="菜单组示例1" id="gr_menu_A">

<!--按钮信息-->


<!--ID:随意填写(注意不能重复)imageMso:内内置图标 label:按钮名称 size:按钮大小 onAction:触发的宏程序程序事件示例:Public Sub vb_bt_A(Control As IRibbonControl)MsgBox "测试按钮1"End Sub -->


<button label="测试按钮1" id="bt_test_A" onAction="vb_bt_A" size="large" imageMso="DataFormAddRecord"/>

<!--分割线-->


<separator id="split_A"/>

<!--按钮信息-->


<button label="测试按钮2" id="bt_test_B" onAction="vb_bt_B" size="large" imageMso="MailMergeRecipientsEditList"/>

</group>

<!--菜单组2信息 id:随意填写(注意不能重复)label:组名称 -->



-<group label="菜单组示例2" id="gr_menu_B">

<!--按钮信息-->


<button label="测试按钮3" id="bt_test_C" onAction="vb_bt_C" size="large" imageMso="CreateReport"/>

<!--分割线-->


<separator id="split_B"/>

<!--按钮信息-->


<button label="测试按钮4" id="bt_test_D" onAction="vb_bt_D" size="large" imageMso="ReviewCompareMenu"/>

</group>


-<group label="菜单组示例3" id="gr_menu_C">

<!--gallery程序实例:Public Sub bt_gal_A(control As IRibbonControl, id As String, index As Integer)MsgBox "展示测试按钮"End Subcolumns:列数 id:随意填写(注意不能重复)itemHeight:项高度 itemWidth:项宽度 onAction:运行的宏 rows:最大行数 -->



-<gallery label="展示按钮测试1" id="gal_A" onAction="bt_gal_A" rows="500" itemWidth="32" itemHeight="32" columns="4">

<item label="图标1" id="item_A" imageMso="_3DBevelOptionsDialog"/>

<item label="图标2" id="item_B" imageMso="_3DBevelPictureTopGallery"/>

<item label="图标3" id="item_C" imageMso="_3DDirectionGalleryClassic"/>

<item label="图标4" id="item_D" imageMso="_3DEffectColorPickerClassic"/>

<item label="图标5" id="item_E" imageMso="_3DEffectColorPickerMoreClassic"/>

<item label="图标6" id="item_F" imageMso="_3DEffectsGalleryClassic"/>

</gallery>

</group>

</tab>

</tabs>

</ribbon>

</customUI>

然后把customUI文件夹,用360压缩打开然后复制到excel文件里面去

最后修改excel文件里面的自带_rels文件夹里面的.rels文件(用于添加customUI文件路径)

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8" standalone="true"?>

-<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">

<!--默认值建议不要修改-->


<Relationship Target="docProps/app.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Id="rId3"/>

<!--默认值建议不要修改-->


<Relationship Target="docProps/core.xml" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Id="rId2"/>

<!--默认值建议不要修改-->


<Relationship Target="xl/workbook.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Id="rId1"/>

<!--新增的内容:VBA菜单栏的UI文件路径(有需要直接复制即可)-->


<Relationship Target="customUI/customUI.xml" Type="http://schemas.microsoft.com/office/2006/relationships/ui/extensibility" Id="cuID"/>

</Relationships>

vba代码:

代码语言:javascript
复制
''微信公众号:VB小源码


Public Sub vb_cs(Ribbon As IRibbonUI)
    MsgBox "VB小源码!欢迎使用本教程!"
    ''添加你的过程如: call test
End Sub

Public Sub vb_bt_A(control As IRibbonControl)
    MsgBox "测试按钮1"
    ''添加你的过程如: call test
End Sub

Public Sub vb_bt_B(control As IRibbonControl)
    MsgBox "测试按钮2"
    ''添加你的过程如: call test
End Sub

Public Sub vb_bt_C(control As IRibbonControl)
    MsgBox "测试按钮3"
    ''添加你的过程如: call test
End Sub

Public Sub vb_bt_D(control As IRibbonControl)
    MsgBox "测试按钮4"
    ''添加你的过程如: call test
End Sub

Public Sub bt_gal_A(control As IRibbonControl, id As String, index As Integer)
    'MsgBox "展示测试按钮"
    ''添加你的过程如: call test
    If id = "item_A" Then MsgBox "图标1"
    If id = "item_B" Then MsgBox "图标2"
    If id = "item_C" Then MsgBox "图标3"
    If id = "item_D" Then MsgBox "图标4"
    If id = "item_E" Then MsgBox "图标5"
    If id = "item_F" Then MsgBox "图标6"

End Sub

文件地址(直接修改加到excel文件即可)

代码语言:javascript
复制
https://www.lanzous.com/i4kzjcf

谢谢关注与支持!!

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

本文分享自 办公魔盒 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档