Skip to content

Public

在模块级用于声明公共变量并分配存储空间。

语法:

Public [ WithEvents ] varname [ ( [ subscripts ] ) ] [ As [ New ] type ] [ , [ WithEvents ] varname [ ( [ subscripts ] ) ] [ As [ New ] type ]] . . .

WithEvents
可选 指定varname是用于响应ActiveX对象触发事件的对象变量的关键字。WithEvents仅在类模块中有效。可以使用WithEvents声明任意数量的单独变量,但不能使用WithEvents声明数组,也不能将NewWithEvents组合使用。
varname
变量名称;遵循标准命名约定。
subscripts
可选 数组变量的维度;最多可声明60个多维。subscripts参数使用以下语法:[ lower To ] upper [ , [ lower To ] upper ] . . .。当lower未显式指定时,数组的下界由Option Base语句控制。如果没有Option Base语句,下界为零。
New
可选 启用隐式对象创建的关键字。当使用New声明对象变量时,首次引用时创建对象的新实例,因此不需要**Set语句来赋值对象引用。New关键字不能用于声明任何内部数据类型的变量或声明依赖对象的实例,也不能与WithEvents**一起使用。
type
可选 变量的数据类型;可以是ByteBooleanIntegerLongCurrencySingleDoubleDecimalDateString(用于变长字符串)、String length(用于定长字符串)、ObjectVariant、用户自定义类型或对象类型。为每个定义的变量使用单独的As type子句。

使用Public语句声明的变量对所有应用程序的所有模块中的所有过程可用,除非**Option Private Module**生效;在此情况下,变量仅在其所在的项目内为公共的。

Public语句不能在类模块中用于声明定长字符串变量。

使用Public语句声明变量的数据类型。例如,以下语句将变量声明为Integer

vb
Public NumberOfEmployees As Integer

也可以使用Public语句声明变量的对象类型。以下语句声明一个新工作表实例的变量:

vb
Public X As New Worksheet

如果声明对象变量时未使用New关键字,则引用该对象的变量必须在使用前通过Set语句赋值一个现有对象。在赋值对象之前,声明的对象变量具有特殊值Nothing,表示它不引用任何特定的对象实例。

带空括号的Public语句也声明动态数组。声明动态数组后,在过程中使用**ReDim**语句定义数组的维度和元素数。对在PrivatePublicDim语句中显式指定大小的数组变量重新声明维度会引发错误。

当未指定数据类型或对象类型,且模块中没有Deftype语句时,变量默认为Variant

变量初始化时,数值变量初始化为0,变长字符串初始化为零长度字符串(""),定长字符串用零填充。Variant变量初始化为Empty。用户自定义类型变量的每个元素作为独立变量初始化。

Public关键字也用作**SubFunctionProperty**声明中的过程修饰符,使这些过程可被所有模块中的所有其他过程访问。

示例

本示例在标准模块的模块级(通用部分)使用Public语句显式将变量声明为公共的;即它们对所有应用程序的所有模块中的所有过程可用,除非Option Private Module生效。

vb
Public Number As Integer ' Public Integer variable.
Public NameArray(1 To 5) As String ' Public array variable.
' Multiple declarations, two Variants and one Integer, all Public.
Public MyVar, YourVar, ThisVar As Integer

另请参阅

twinBASIC及其LOGO版权为作者"韦恩"所有