Property Get 语句
声明名称、参数和形成 Property过程(该过程获取属性的值)主体的代码,。
语法
[ 公共 | 私人 | 好友 ][ 静态 ] 属性获取名称 [ (arglist) ] [ Astype ]
[ 语句 ]
[ name=表达式 ]
[ Exit Property ]
[ 语句 ]
[ name=表达式 ]
End Property
Property Get 语句的语法包含以下部分:
Part | 说明 |
---|---|
Public | 可选。 指示 Property Get 过程可供所有模块中的其他所有过程访问。 如果在包含 Option Private 语句的模块中使用此过程,则此过程在项目的外部不可用。 |
Private | 可选。 指示 Property Get 过程只能供声明它的模块中的其他过程访问。 |
Friend | 可选。 仅在类模块中使用。 指示 Property Get 过程在整个项目中可见,但对于对象实例的控制器不可见。 |
Static | 可选。 指示在两次调用之间保留 Property Get 过程的局部变量。 Static 属性不影响在 Property Get 过程外声明的变量,即使在过程中使用这些变量。 |
名称 | 必填。 属性获取过程的名称;遵循标准变量命名约定,只是名称可以与同一模块中的 Property Let 或 Property Set 过程相同。 |
arglist | 可选。 表示调用 Property Get 过程时传递到该过程的参数的变量列表。 多个参数由逗号分隔。 Property Get 过程中每个参数的名称和数据类型必须与 Property Let 过程(如果存在)中的相应参数相同。 |
type | 可选。
Property Get 过程返回的值的数据类型;可以是 Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal (当前不支持) 、Date、String (但固定长度) 、Object、Variant、user-defined type 和 Arrays 除外。 Property Get 过程的返回类型必须和相应 Property Let 过程(如存在,用来定义分配给表达式右侧的属性的值)中最后一个(有时也是唯一一个)参数的数据类型相同。 |
statements | 可选。 要在 Property Get 过程主体内执行的任何一组语句。 |
expression | 可选。 由 Property Get 语句定义的过程返回的属性值。 |
arglist 参数具有以下语法和组成部分:
[ 可选 ][ ByVal | ByRef ][ ParamArray ] varname [ ( ) ] [ Astype ] [ =defaultvalue ]
Part | 说明 |
---|---|
可选 | 可选。 指示不需要参数。 如果使用,arglist 中的所有后续参数也必须是可选的,并使用 Optional 关键字 (keyword) 进行声明。 |
ByVal | 可选。 指示按值传递参数。 |
ByRef | 可选。 指示按引用传递参数。 ByRef 是 VBA 中的默认值,与 Visual Basic .NET 中不同。 |
ParamArray | 可选。 仅用作 arglist 中的最后一个参数来指示最后的参数为 Variant 元素的 Optional 数组。 ParamArray 关键字允许您提供任意数量的参数。 它无法用于 ByVal、ByRef 或 Optional。 |
varname | 必填。 表示参数的变量的名称;遵循标准变量命名约定。 |
type | 可选。 传递给过程的参数的数据类型;可以是 Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(目前不支持)、Date、String(仅可变长度)、Object、Variant 或特定对象类型。 如果参数不是可选的,则也可能指定用户定义的类型。 |
defaultvalue | 可选。 任何常量或常量表达式。 仅对 Optional 参数有效。 如果该类型是 Object,则显式默认值只能为 Nothing。 |
备注
如果未使用 Public、 Private 或 Friend 显式指定属性过程,则 属性 过程默认为公共。 如果未使用 Static ,则不会在调用之间保留局部变量的值。
Friend 关键字只能用于类模块。 但是,项目的任何模块中的过程均可以访问 Friend 过程。 Friend 过程既不会显示在其父类的类型库中,也不会成为稍后可绑定的 Friend 过程。
所有可执行代码必须位于过程中。 不能在另一个 Property、Sub 或 Function 过程中定义 PropertyGet 过程。
Exit Property 语句会导致立即退出 Property Get 过程。 程序将继续执行已调用 Property Get 过程的语句后面的语句。 任何数量的 Exit Property 语句可以出现在 Property Get 过程中的任何位置。
与 Sub 和 Property Let 过程一样, Property Get 过程是一个单独的过程,它可以获取参数、执行一系列语句和更改其参数的值。 但是,与 Sub 或 Property Let 过程不同,可以在表达式右侧使用 Property Get 过程,其方式与在返回属性值时使用 Function 或属性名称的方式相同。
示例
此示例使用 Property Get 语句定义一个可获取属性值的 Property 过程。 该属性将笔的当前颜色标识为字符串。
Dim CurrentColor As Integer
Const BLACK = 0, RED = 1, GREEN = 2, BLUE = 3
' Returns the current color of the pen as a string.
Property Get PenColor() As String
Select Case CurrentColor
Case RED
PenColor = "Red"
Case GREEN
PenColor = "Green"
Case BLUE
PenColor = "Blue"
End Select
End Property
' The following code gets the color of the pen
' calling the Property Get procedure.
ColorName = PenColor
另请参阅
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。