Sub 语句

声明 Sub 过程的名称、参数以及构成其主体的代码。

 [Public [Default]| Private] Sub name [(
  arglist
)]
[statements]
[Exit Sub]
[statements]
End Sub

参数

Public

表示 Sub 过程可被所有脚本中的所有其他过程访问。

Default

只与 块中的Public 关键字连用,用来表示 Sub 过程是的默认方法。 如果在类中指定了不止一个Default过程,就会出错。

Private

表示 Sub 过程只可被声明该过程的脚本中的其他过程访问。

name

Sub 的名称,遵循标准变量命名约定。

arglist

代表在调用时要传递给 Sub 过程的参数的变量列表。用逗号隔开多个变量。

statements

Sub 过程主体内所执行的任何语句组。

arglist 参数包含下列语法和部分:

[ByVal | ByRef] varname[( )]

参数

ByVal

表示该参数按值传递的。

ByRef

表示该参数按引用传递。

varname

代表参数的变量名称,遵循标准变量命名约定。

说明

如没有显式地指定使用 PublicPrivate,则 Sub 过程默认为公用,即它们对于脚本中的所有其他过程都是可见的。Sub 过程中局部变量的值在调用过程中不被保留。

不能在任何其他过程(例如,FunctionProperty Get)中定义 Sub 过程。

使用 Exit Sub 语句可以立即从 Sub 过程中退出。程序继续执行调用 Sub 过程的语句之后的语句。可以在 Sub 过程中任意位置出现任意个 Exit Sub 语句。

Function 过程相似之处是:Sub 过程是一个可以获取参数,执行一系列语句以及可改变其参数的值的独立过程。而与 Function 过程不同之处是:Function 过程可以返回值,而 Sub 过程不能用于表达式中。

可以使用过程名并跟随相应的参数列表来调用 Sub 过程。关于如何调用 Sub 过程的详细说明信息,请参阅 Call 语句。

小心 Sub 过程可以是递归的,即该过程可以调用自己来完成某个给定的任务。但是递归可能会导致堆栈溢出。

Sub 过程中使用的变量分为两类:一类是在过程内显式声明的,另一类则不是。在过程内显式声明的变量(使用 Dim 或等效方法)总是局部变量。对于那些没有在过程中显式声明的变量也是局部的,除非在该过程外更高级别的位置显式地声明它们。

小心 过程可以使用没有在过程内显式声明的变量,但只要有任何 script 级定义的名称与之同名,就会产生名称冲突。如果过程中引用的未声明的变量与其他的过程、常数或变量的名称相同,则会认为过程引用的是脚本级的名称。要避免这类冲突,请使用 Option Explicit 语句可强制显式声明变量。

要求

版本 1

请参阅

Call 语句 | Dim 语句 | Exit 语句 | Function 语句