当前位置:首页 > 实用技巧 >

vba制作excel插件教程(excel中的vba中如何运行插件)

来源:原点资讯(www.yd166.com)时间:2023-05-12 06:54:36作者:YD166手机阅读>>

如何把自己常用的EXCEL宏代码进行合理的组织,得到类似于EXCEL原生选项卡上的菜单?

下面Step by Step的演示,如何从自己原始的代码开始,得到最终的成品。

  1. 步骤一,准备好原始的代码,以备导入或者复制。
  2. 步骤二,新建一个EXCEL文件,并另存为XLAM格式
  3. 步骤三,安装Office Custom UI Editor,见附件1

说明:用该软件打开XLAM文件,复制以下的XML语句,保存后退出

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" >

<ribbon startFromScratch="false">

<tabs>

<tab id="TA89" label="A89-其他工具">

<group id="GA89B11" label="B11-CAD工具">

<menu id="MA89B11C01" label="B11-CAD工具" image="A8911" size="large" itemSize="normal" >

<button id="A89B11C01" label="C01-批量替换多对文本" onAction="Dingmurch01SU_04bRA_A89B11C01" imageMso="SkipOccurrence"/>

<button id="A89B11C02" label="C02-批量锁定全部图层" onAction="Dingmurch01SU_04bRA_A89B11C02" imageMso="FileDocumentEncrypt"/>

</menu>

<button id="A89B11C03" label="C03-批量解锁全部图层" onAction="Dingmurch01SU_04bRA_A89B11C03" imageMso="QueryBuilder"/>

<button id="A89B11C04" label="C04-批量合并多张图纸" onAction="Dingmurch01SU_04bRA_A89B11C04" imageMso="SplitCells" />

</group>

</tab>

</tabs>

</ribbon>

</customUI>

即可得到以下效果

vba制作excel插件教程,excel中的vba中如何运行插件(1)

简单而言,记住关键字和实物之间的对应关系即可

TAB对应选项卡

GROUP为同一选项卡下的分组

MENU为需要点击后弹出式菜单

BUTTON为具体的某个对应功能的菜单,注意以上实例,BUTTON可以在MENU的下级,也可以直接在GROUP下级。

<tab id="TA89" label="A89-其他工具">

<group id="GA89B11" label="B11-CAD工具">

TAB和GROUP有两个关键字,ID和LABEL,其中的ID只要不重复可以随意命名,LABLE即最终体现到加载项的可见文字

<menu id="MA89B11C01" label="B11-CAD工具" size="large" itemSize="normal" >

MENU中也有ID和LABEL,功能同上,另外它增加了SIZE和TIEMSIZE,SIZE取large,则它在选项卡上占三行的空间,如果normal则像C03-按钮一样,占一行的高度

<button id="A89B11C01" label="C01-批量替换多对文本" onAction="Dingmurch01SU_04bRA_A89B11C01" imageMso="SkipOccurrence"/>

BUTTON中也有ID和LABE,SIZE,功能同上,另外它增加了OnAction,这个即为需要调用的宏或者过程名称。imageMso为对应的图标

  1. 步骤四,移植原始代码并套壳

例如原始代码有个过程

Sub Dingmurch01SU_03bMA_A83B04C21()

'【A对应菜单】

'【B对应功能】

'【C调试时间】2021.04.12

Dim GB02CAEA03Batch_Input As Range

Dim GB02CAEA03Batch_Output1 As Integer

Dim GB02CAEA03Batch_Aux As Integer

Dingstringlen = InputBox("输入随机数最大范围", Dingmurch10PB_00VER_MBOX, "")

If Dingstringlen <> "" And IsNumeric(Dingstringlen) = True Then

Set MYrg = Application.Selection

For Each GB02CAEA03Batch_Input In MYrg

k = Round(Rnd * Dingstringlen, 2)

If k = 0 Then

k = 10 ^ -2

Else

GB02CAEA03Batch_Input = k

End If

Next

End If

End Sub

这个“Dingmurch01SU_03bMA_A83B04C21”不能直接用于OnAction,需要如下方式套个壳

Sub Dingmurch01SU_04bRA_A83B04C21(control As IRibbonControl)

Dingmurch01SU_03bMA_A83B04C21

End Sub

  1. 步骤5,为每个按钮选择图标,本步骤利用EXCELHOME论坛下载的一个加载项解决,见附件2。

由于XML配置文件内容庞杂每次修改不太方便,因此本人用EXCEL表格搭建了一个快速生成配置文件的功能,详细见附件3,本文生成的示例文件见附件4。

  1. 附件3使用说明

根据Q列的文件头,复制相应的行并插入对应的位置,然后填写AA,AB,AC,AD,AE,AF等相关列,完成后只需要完整复制Y列的内容,即可完成XML文件的更新。

vba制作excel插件教程,excel中的vba中如何运行插件(2)

PS:XML文件还有更多的标签或者属性, getVisible, screentip,supertip, tag等,可以实现根据权限展示或者隐藏某个按钮的功能,有兴趣的可以自行测试研究。

PS :以上附件,可从以下任一位置下载

https://cloud.189.cn/t/amqiqeYfiiIz

https://caiyun.139.com/m/i?015CHbpdG1oXC提取码:S4oL

栏目热文

vba制作菜单栏(vba自定义菜单和菜单栏)

vba制作菜单栏(vba自定义菜单和菜单栏)

Excel2007中,功能区替代了以前的分层菜单、工具栏和任务窗格系统。自定义菜单栏、工具栏的效果:主要是使用Comma...

2023-05-12 07:08:13查看全文 >>

excelvba制作查询(excelvba查询代码)

excelvba制作查询(excelvba查询代码)

我们在处理客户问题的时候,问题的多样性和复杂性会让我们需要做一个自己的问题知识库查询系统。当客户问题此类问题的时候,我们...

2023-05-12 07:19:31查看全文 >>

excel编程vba菜单(excel所有vba执行代码)

excel编程vba菜单(excel所有vba执行代码)

接昨天的自定义函数,今天就教大家几个常用的 VBA 代码!相信不少小伙伴一听到 VBA,立马纷纷后退,将它视作洪水猛兽。...

2023-05-12 07:07:56查看全文 >>

vba图表制作菜单(vba窗体制作图表方法)

vba图表制作菜单(vba窗体制作图表方法)

在Excel中制作动态图表,传统的方法是利用表单控件与单元格链接,从而获取图表所需要数据。其实,不用控件,只需几句VB...

2023-05-12 06:59:31查看全文 >>

vba在excel中常用实例(excel vba从入门到进阶)

vba在excel中常用实例(excel vba从入门到进阶)

很多人学完VBA基本语法后,不知道该怎么继续往下学了,我推荐这个资料非常有用,里面包含了Excel VBA的各种技巧、经...

2023-05-12 07:17:14查看全文 >>

vba excel代码(vba excel操作网页)

vba excel代码(vba excel操作网页)

有时候,你需要将几十个工作簿中的内容,快速汇总至合并至一个工作簿,如果手动一个复制粘贴,那心里有苦说不出。。。今天将大家...

2023-05-12 07:07:02查看全文 >>

excelvba制作菜单(excel vba 生成列表)

excelvba制作菜单(excel vba 生成列表)

大家好,世界各地,疫情施虐。疫情过后会是什么?对于后疫情时代大家很难预测,或许是供应链的断裂,经济下行的压力加大,但可以...

2023-05-12 07:19:09查看全文 >>

vba表格制作步骤(vba表格录入系统制作)

vba表格制作步骤(vba表格录入系统制作)

日常工作中,经常需要做这么一件事,在工作簿里面创建几十个工作表,例如3月份,每天的数据存放在一个工作表里面,一共要新建3...

2023-05-12 06:49:53查看全文 >>

excel vba制作弹窗(excel vba 制作)

excel vba制作弹窗(excel vba 制作)

之前介绍的操作文件的Dir函数与FSO对象都不会弹出窗口,让操作者选择文件。VBA提供这种操作的,是另外的 Appli...

2023-05-12 06:39:29查看全文 >>

vba操作excel表(vba操作excel)

vba操作excel表(vba操作excel)

Hello,大家好,今天跟大家分享几个比较实用的自定义函数,都是利用VBA代码自己定义,操作非常的简单,大家只需要打开V...

2023-05-12 06:45:34查看全文 >>

文档排行