过程(二)Sub过程的定义和调用

2019-10-13 16:15:22 浏览数 (1)

大家好,上节主要介绍了VBA过程的定义和分类,本节主要介绍Sub过程的定义和调用。

一、定义Sub过程

在编写代码时,都要现在模块中定义过程,通常都是输入sub 过程名称后回车,或者选择对象和对应的事件后,程序自动生成过程的外部结构如下图所示:

定义过程有两种方法,一种是用窗体创建过程的结构,在过程中编写相应的代码,这里不多介绍,另一种则是我们习惯使用的在模块中直接输入代码来定义过程。sub过程的完整结构如下:

[ Private |Public|Friend ] [Static] Sub 过程名 [(参数列表)]

语句序列

End Sub

整个过程由Sub、End Sub和中间的代码组成,前面见过的形式是Sub前没有关键字或者事件过程Private。那么Sub前面的关键字分别是什么意义呢?

Public:可以省略,即默认关键字,表示所有模块的所有其他过程都可以访问整个sub过程。(通常收入输入sub创建的就是这类,可以被调用访问。)

Private:表示只有在包含其声明的模块中的其他过程可以访问该sub过程。(事件过程前会有Private关键字。)

Friend:只能在类模块中使用,表示该sub过程再整个工程中都是可见的,但对对象实例的控制者是不可见的。

Static:表示在调用Sub过程的局部变量的值。Static属性对在sub之外声明的变量不会产生影响,即使过程中使用了这些变量。

定义Sub过程时可以根据需要选择关键字,省略状态时为Public。

需要注意的点是:

1、sub过程不能嵌套,即不能将过程的定义放在另一个过程中。

2、每个sub过程必须有一个end sub语句结束,另外在过程中可以使用一个或多个Exit Sub语句直接退出过程的执行。

3、每一个过程都必须对应一个名称,通过过程名称可以调用该过程,过程名称的命名需要符合标识符的命名规则。

二、调用Sub过程

使用过程的目的就是将一个应用程序划分成很多小模块,每个小模块完成一个具体的功能,然后通过组合这些过程来完成大的功能。

在VBA中经常通过调用定义好的过程来执行程序,Sub过程的调用分两种方式,一种是在VBA中调用Sub过程,另一种是在Excel中以调用宏的方式,

1、使用VBA代码调用sub过程

在程序中调用sub过程又两种方式,一种是把过程名方在一个CALL语句中,另一种是把过程作为一个语句来使用。(实际就是省略了call)

call语句的语法格式很简单。

call 过程名(过程参数列表) 或者 过程名 参数列表

过程参数有多个时,用英文逗号间隔,如果没有过程参数,可以省略。(为了程序的易读性通常不省略call。)如之前的调用dingshi的实例。

2、以宏的方式调用sub过程

比较常用的,就是插入表单控件按钮等,然后在指定宏的窗口中,绑定指定的Sub过程,即可以用于调用。(以宏方式调用Sub过程无法给过程传递参数,所以通过宏只能调用无参数的Sub过程。)


本节主要介绍Sub过程的定义和调用,重点是Sub过程的关键字和注意点。下一节会介绍过程如何传递参数。祝大家学习快乐。


0 人点赞