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 LetProperty Set 过程相同。
arglist 可选。 表示调用 Property Get 过程时传递到该过程的参数的变量列表。 多个参数由逗号分隔。 Property Get 过程中每个参数的名称和数据类型必须与 Property Let 过程(如果存在)中的相应参数相同。
type 可选。 Property Get 过程返回的值的数据类型;可以是 ByteBooleanIntegerLongCurrencySingleDoubleDecimal (当前不支持) 、DateString (但固定长度) 、ObjectVariantuser-defined typeArrays 除外。

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 关键字允许您提供任意数量的参数。 它无法用于 ByValByRefOptional
varname 必填。 表示参数的变量的名称;遵循标准变量命名约定。
type 可选。 传递给过程的参数的数据类型;可以是 ByteBooleanIntegerLongCurrencySingleDoubleDecimal(目前不支持)、DateString(仅可变长度)、ObjectVariant 或特定对象类型。 如果参数不是可选的,则也可能指定用户定义的类型。
defaultvalue 可选。 任何常量或常量表达式。 仅对 Optional 参数有效。 如果该类型是 Object,则显式默认值只能为 Nothing

备注

如果未使用 PublicPrivateFriend 显式指定属性过程,则 属性 过程默认为公共。 如果未使用 Static ,则不会在调用之间保留局部变量的值。

Friend 关键字只能用于类模块。 但是,项目的任何模块中的过程均可以访问 Friend 过程。 Friend 过程既不会显示在其父类的类型库中,也不会成为稍后可绑定的 Friend 过程。

所有可执行代码必须位于过程中。 不能在另一个 Property、SubFunction 过程中定义 PropertyGet 过程。

Exit Property 语句会导致立即退出 Property Get 过程。 程序将继续执行已调用 Property Get 过程的语句后面的语句。 任何数量的 Exit Property 语句可以出现在 Property Get 过程中的任何位置。

SubProperty Let 过程一样, Property Get 过程是一个单独的过程,它可以获取参数、执行一系列语句和更改其参数的值。 但是,与 SubProperty 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。