手机版

如何创建Excel外接程序

时间:2021-09-19 来源:互联网 编辑:宝哥软件园 浏览:

问:我看过很多别人发布的Excel加载项,可以提供一些额外的功能或者特殊的功能,极大的扩展和方便了Excel的使用。Excel外接程序是如何开发的?

答:下面介绍如何通过创建示例外接程序的完整过程来构建自己的Excel外接程序。

第一步:确定目标。

首先,我们需要确定外接程序应该执行什么操作以及它应该具有什么功能。

此示例外接程序的主要目的是帮助用户分析工作簿的底层操作机制:

列出工作簿中的所有公式和相关信息。

列出指定工作表中的条件格式信息。

第二步:用户界面设计和操作。

外接程序需要一种与用户交互的方式。该方法可以是用户表单、用于数据输入和报告的工作表模板、右键菜单命令或功能区选项卡中的命令。

此示例外接程序将使用自定义功能区用户界面。在功能区中添加一个名为“我的工具”的自定义选项卡,并在其中添加功能命令,如下所示。

当用户单击公式列表时,将弹出一个消息框,列出工作簿中使用的所有公式、公式所在的单元格以及工作表。

当用户点击“条件格式列表”时,会弹出一个用户表单,如下图,表单中选择了工作表,工作表中设置的条件格式信息会在下面列出。

第三步:写代码。

功能区用户界面

创建一个新工作簿并命名,然后关闭该工作簿。在Microsoft office的自定义ui编辑器中打开工作簿,然后单击“插入—— office 2 7自定义ui部件”,如所示。

在其中输入以下代码:

button id=" rxsheettoolsbtnformalists "

标签=“公式列表”。

size="大"

o action=" rxsheettoolsbtnformalists "

imageMso="FunctionWizard" /

button id=" rxsheettoolsbtncondingformat "

Label="条件格式列表"。

size="大"

on action=" rxSheetToolsbtnCondFormat "

imageMso=" conditionalformattingmanage "/

验证后,保存代码。单击生成回调,复制生成的回调代码,然后关闭自定义用户界面编辑器。

VBA法典

在Excel中打开工作簿,按Alt F11打开VBE。

在VBE中插入一个标准模块并命名为modRibbonX,然后将刚刚复制的代码粘贴到其中:

调用rxSheetToolsbtnConditionalFormat操作的回调

子rxSheetToolsbtnCondFormat(控件为IRibbonControl)

末端接头

子rxSheetToolsbtnFormulaLists(控制为IRibbonControl)

末端接头

插入一个标准模块并将其命名为:modAFL,然后输入代码:

列出所有公式。

子所有公式列表()

将周调暗为工作表

将字符串变暗为字符串

将范围调暗为范围

将rngFormulaRange调暗为范围

调光范围

昏暗的灯光和长长的一样

Str="工作表名称" vbTab "单元格地址" vbTab "公式文本" vbCrLf。

“vbCrLf”

遍历工作簿中的工作表,获取工作表中的公式和相关信息。

活动工作簿中的每个星期。工作表

设置rngUsedRange=wks。使用范围

出错时继续下一步

设置rngFormulaRange=rngUsedRange。特殊单元格(xlCellTypeFormulas)

对于rngFormulaRange中的每个rng

str=str wks。名称vbTab vbTab

字符串=字符串应用程序。替代物。地址," $ "," ")vbTab vbTab

str=str Mid(rng。公式2,(Len(rng。公式)))vbCrLf

下一个rng

设置rngFormulaRange=无

设置rngUsedRange=无

下一周

Msboxstr,“此工作簿中的所有公式和对应的单元格地址”。

末端接头

插入一个用户表单,并在其中放置两个标签控件,一个组合框,一个列表框和一个命令按钮,如下所示。

为用户表单编写的代码如下:

私有子用户表单_初始化()

将周调暗为工作表

表格中的每一周

cmbSheet。AddItem wks。名字

下一周

末端接头

私有子cmdOK_Click()

LBL选项。Caption=" "

第一秒格式。清楚的

列表条件格式。文本)

末端接头

子列表条件格式化(以字符串形式显示周名称)

变型

调光范围

将rngAll调暗为范围

将色谱柱整合为集合

我如龙,我如龙

变型变量

设置列一致性=新集合

出错时继续下一步

设置rngAll=工作表(wks名称)。细胞。特殊细胞(xlcelltypel畸形)

出现错误转到

如果rngAll什么都不是

LBL选项。标题="工作表"工作时间"中没有设置条件格式."

出口接头

如果…就会结束

LBL选项。标题="工作表"工作时间"中设置的条件格式如下:"

对每个人来说

对于i=1至rng .格式条件。计数

和皇族永不言弃(Royal Never Give Up 电子竞技俱乐部)一起。格式条件

出错时继续下一步

colConFormat .添加。第(一)项,FCSignature(.项目)

出现错误转到

以…结尾

接下来我

下一个皇族永不言弃(Royal Never Give Up 电子竞技俱乐部)

雷迪姆变量(1至colConFormat .数到1,1到5)

var(1,1)=”类型"

var(1,2)=”单元格"

var(1,3)=”如果为真则停止"

var(1,4)=”公式1"

var(1,5)=”公式2"

对于i=1至colConFormat .数数

设置cf=colConFormat .项目

var(i 1,1)=FCTypeFromIndex(参见类型)

var(i 1,2)=参见应用于地址

var(i 1,3)=参见停止运行

出错时继续下一步

var(i 1,4)=“”参见公式一

var(i 1,5)=“”参见公式2

出现错误转到

接下来我

第一秒格式。列计数=5

第一秒格式。列表=var

末端接头

函数FCSignature(ByRef cf As Variant)作为字符串

将结果(1至3)调暗为字符串

strResult(1)=cf . appliesto。地址

strResult(2)=FCTypeFromIndex(比较类型)

出错时继续下一步

strResult(3)=参见公式一

FCSignature=Join(strResult,vbNullString)

结束功能

函数FCTypeFromIndex(lngIndex为长)为字符串

选择案例索引

案例1: FCTypeFromIndex="单元格值"

Case 2: FCTypeFromIndex="表达式"

案例3: FCTypeFromIndex="色阶"

案例4: FCTypeFromIndex="数据条"

Case 5: FCTypeFromIndex="前1 ?"

Case 6: FCTypeFromIndex="图标集"

Case 8: FCTypeFromIndex="唯一值"

Case 9: FCTypeFromIndex="文本"

案例1 : FCTypeFromIndex="空值"

案例11: FCTypeFromIndex="时间段"

案例12: FCTypeFromIndex="高于平均值"

案例14: FCTypeFromIndex="非空值"

案例16: FCTypeFromIndex="错误"

案例17: FCTypeFromIndex="无错误"

Case Else: FCTypeFromIndex="未知"

结束选择

结束功能

然后,回到modRibbonX模块,完善代码如下:

rxSheetToolsbtnConditionalFormat操作的回调

子rxSheetToolsbtnCondFormat(控件为IRibbonControl)

财政部长会议.显示

末端接头

子rxSheetToolsbtnFormulaLists(控制为IRibbonControl)

所有公式列表

末端接头

至此,本示例加载宏的编码工作完成。

第四步:创建加载宏

创建加载宏很简单,单击"办公室按钮——另存为”(Excel 2 7)或者"文件——另存为”(Excel 2 1),在"保存类型"中选择“Excel加载宏(*.xlam)",如所示。

此时,Excel会自动导航到默认的加载宏文件夹,如所示。也可以选择存在自已指定的其他文件夹中。

单击"保存",创建加载宏。

第5步:安装加载宏

单击功能区"开发工具——加载项",打开如下所示的对话框。如果"可用加载宏"列表中没有我们的示例加载宏,则可以单击右侧的"浏览"按钮,导航到加载宏所在的文件夹并选择加载宏文件,添加到列表中。

如所示,选取示例加载宏前面的复选框,单击"确定",完成加载宏安装。此时,Excel工作簿中将会新增一个"我的工具"选项卡,如本文开头的所示。

版权声明:如何创建Excel外接程序是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。