- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第06章 编写SUB过程及开发函数
VBA的主体结构就是过程。VBA包括子过程、函数过程和属性过程三种,本书主要介绍子过程(也称Sub过程)和函数过程(也称Function过程)。
本章要点
认识过程
Sub过程
Function过程
关于过程参数
开发自定义函数
编写函数帮助
6.1 认识过程
VBA中每一个程序都包含过程。录制的宏是一个过程,一个自定义函数也是一个过程。掌握好单个过程的编写思路,就可以组合成一个大中型插件或者专业程序。
6.1.1 过程的分类与调用方式
过程主要分为三类:子过程、函数过程和属性过程。这三类过程的格式如下。
Sub 子过程()
……
End Sub
Function 函数过程(rng As Range)
……
End Function
Property Get 属性过程() As Variant
……
End Property
本书主要讲述Sub子过程和Function函数过程的开发。
Sub过程是VBA中应用最广的过程,录制宏所产生的过程就是Sub过程。Sub过程的执行方式包括五种。
1.【Alt+F8】执行
如果在工作表命令窗口、ThisWorkBook命令窗口或者标准模块窗口中存在Sub过程,那么在工作表界面可以通过快捷键【Alt+F8】来执行该过程。
假设在VBE界面中的Sheet1代码窗口中有一个Sub过程“汇总”,在模块1中有一个名为“新建菜单”的Sub过程,那么通过快捷键【Alt+F8】打开“宏”对话框后,将在对话框中产生两个可执行程序名,其中工作表命令窗口的Sub过程会连同工作表名一起出现在宏名列表中,而模块中的过程则仅仅列出过程名。用户选择目标程序并单击【执行】按钮即可启动Sub子过程。
2.快捷键执行
Sub过程可以与某个快捷键进行关联,在后续的使用中就可以利用这个快捷键来调用对应的过程。
设置Sub过程的快捷键主要有两种方式:利用宏对话框设置及用VBA代码指定。后者在本书其他章节将会讲述,在此演示一下“宏”对话框设置宏的快捷键的方法:
假设VB工程中有两个名为“汇总”和“新建菜单”的Sub过程,在工作表界面中按下快捷键【Alt+F8】调出图6.1所示对话框,然后选择“新建菜单”,并单击“选项”按钮,在弹出的“宏选项”对话框中指定快捷键,如图6.2所示。图中设计宏程序“新建菜单”的快捷键是【Ctrl+q】。
图6.1 “宏”对话框 图6.2 设置Sub过程的快捷键
3.按钮执行
在工作表中建一个按钮,并将按钮与Sub过程关联,从而实现单击按钮执行程序。
将按钮关联到Sub过程的步骤为:
1.单击菜单【开发工具】→【表单控件】→【按钮】;
2.在工作表中按下左键并向右下方拖动,从而绘制一个控件按钮;
3.在弹出的对话框中选择“新建菜单”,如图6.3所示;
4.返回工作表后即可单击名为“按钮1”的按钮来执行程序“新建菜单”。
图6.3 关联过程与按钮
4.菜单调用
最常见的是编写一个自定义菜单或者工具条来调用Sub过程。菜单与工具条的设计方法参见本书第19章及第20章。
5.事件引发
对于部分需要自启动的程序,通常利用事件引发,不需要人工干预。例如工作簿开启时就自动执行某程序,或者关掉窗体、鼠标移过窗体时执行某程序……
对于事件过程的运用参见本书第8章。
6.工作表中使用公式调用
Function过程即自定义函数,可以像使用内置的工作表函数一样在公式中使用。
调用Function过程的步骤如下:
1.单击菜单【插入】→【模块】;
2.在模块中录入以下代码:
Function 成绩(rng)
成绩 = IIF(rng = 60, 及格, 不及格)
End Function
3.返回工作表中,在A1输入数值50,在B1输入公式:
=成绩(A1)
可以发现公式可以像内置函数一样运行,它返回“不及格”,正是期望的结果。
6.1.2 插入过程的方式
编写过程时可以手工录入代码,也可以让利用VBA提供的列表自动产生程序外壳。
一个Sub过程分为程序外壳部分和主体部分。如图6.4所示。
图6.4 Sub过程的外壳与主体部分示意图
其中外壳部分可以手工录入,也可以利用VBE提供的方式完成。
1.非事件过程
对于非事件的Sub 过程,VBA提供了一个专用窗体来选择性录入过程的外壳。具体步骤如下:
1.在VBE界面中单击菜单【插入】→【模块】;
2.单击菜单【插入】→【过程】打开“添加过程”对话框;
3.在“名称”框中录入“汇总”,并将“类型”选择“子过程”,将“范围”设为“私有的”,如图6.5所示。然后单击“确定”按钮。
图6.5 添加Sub过程外壳图
执行以上程序后在模块中可以看到产生的代码为
文档评论(0)