Property Let 语句
声明构成 Property过程正文的名称、参数和代码,该过程向属性赋值。
语法
[ 公共 | 私人 | 好友 ][ 静态 ] 属性 Letname ( [ arglist ], value )
[ 语句 ]
[ Exit Property ]
[ 语句 ]
End Property
Property Let 语句语法具有以下部分:
Part | 说明 |
---|---|
Public | 可选。 指示 Property Let 过程对所有模块中的所有其他过程是可访问的。 如果在包含 Option Private 语句的模块中使用此过程,则此过程在项目的外部不可用。 |
Private | 可选。 指示 Property Let 过程仅对在其中声明它的模块中的其他可访问。 |
Friend | 可选。 仅在类模块中使用。 指示 Property Let 过程在整个项目中可见,但对于对象实例的控制器不可见。 |
Static | 可选。 指示在各个调用之间保留 Property Let 过程的本地变量。 Static 属性不影响在 Property Let 过程的外部声明的变量,即使在过程中使用它们也是如此。 |
名称 | 必填。 Property Let 过程的名称;遵循标准变量命名约定,只是名称可以与同一模块中的 Property Get 或 Property Set 过程相同。 |
arglist | 必填。 表示在调用 Property Let 过程时传递给该过程的参数的变量的列表。 多个参数由逗号分隔。 Property Let 过程中每个参数的名称和数据类型必须与 Property Get 过程中对应的参数相同。 |
value | 必填。 要包含分配给属性的值的变量。 在调用此过程时,该参数将显示在所调用的表达式的右侧。 value 的数据类型必须与相应的 Property Get 过程的返回类型相同。 |
statements | 可选。 要在 Property Let 过程中执行的任何语句组。 |
Arglist 参数具有以下语法和部分:
[ 可选 ][ ByVal | ByRef ][ ParamArray ] varname [ ( ) ] [ Astype ] [ =defaultvalue ]
Part | 说明 |
---|---|
可选 | 可选。 指示不需要参数。 如果使用,arglist 中的所有后续参数也必须是可选的,并使用 Optional 关键字 (keyword) 进行声明。 请注意,Property Let 表达式的右边不能是 Optional。 |
ByVal | 可选。 指示按值传递参数。 |
ByRef | 可选。 指示按引用传递参数。 ByRef 是 VBA 中的默认值,与 Visual Basic .NET 中不同。 |
ParamArray | 可选。 指示参数是 Variant 元素的 Optional 数组。 ParamArray 关键字允许您提供任意数量的参数。 它无法用于 ByVal、ByRef 或 Optional。 此关键字 (keyword) 不能是最后一个元素,也不能是 arglist 的唯一元素。 |
varname | 必填。 表示参数的变量的名称;遵循标准变量命名约定。 |
type | 可选。 传递给过程的参数的数据类型;可以是 Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(当前不受支持)、Date、String(仅可变长度)、Object、Variant 或特定的对象类型。 如果参数不是 Optional,则还可以指定用户定义类型。 |
defaultvalue | 可选。 任何常量或常量表达式。 仅对 Optional 参数有效。 如果该类型是 Object,则显式默认值只能为 Nothing。 |
注意
每个 Property Let 语句都必须为其定义的过程定义至少一个 有效 参数。 “有效”表示不应使用“可选”或“ParamArray”对其进行修改。 在调用由 Property Let 语句定义的过程时,该参数(在有多个参数时为最后一个参数)包含赋给属性的实际值。 在前面的语法中,该参数是指 value。
备注
如果未使用 Public、 Private 或 Friend 显式指定属性过程,则 属性 过程默认为公共。 如果未使用 Static ,则不会在调用之间保留局部变量的值。
Friend 关键字只能用于类模块。 但是,项目的任何模块中的过程均可以访问 Friend 过程。 Friend 过程既不会显示在其父类的类型库中,也不会成为稍后可绑定的 Friend 过程。
所有可执行代码必须位于过程中。 不能在另一个 Property、Sub 或 Function 过程中定义 PropertyLet 过程。
Exit Property 语句会导致立即退出 Property Let 过程。 程序执行将继续运行调用了 Property Let 过程的语句后面的语句。 任意数目的 Exit Property 语句可以显示在 Property Let 过程中的任何位置。
类似于 Function 和 Property Get 过程, Property Let 过程是一个独立过程,它可以采用参数,执行一系列语句并更改其参数的值。 但是,与函数和 Property Get 过程不同,这两个过程都返回一个值,你只能在属性赋值表达式或 Let 语句的左侧使用 Property Let 过程。
示例
此示例使用 Property Let 语句定义为属性赋值的过程。 属性标识绘制包的笔颜色。
Dim CurrentColor As Integer
Const BLACK = 0, RED = 1, GREEN = 2, BLUE = 3
' Set the pen color property for a Drawing package.
' The module-level variable CurrentColor is set to
' a numeric value that identifies the color used for drawing.
Property Let PenColor(ColorName As String)
Select Case ColorName ' Check color name string.
Case "Red"
CurrentColor = RED ' Assign value for Red.
Case "Green"
CurrentColor = GREEN ' Assign value for Green.
Case "Blue"
CurrentColor = BLUE ' Assign value for Blue.
Case Else
CurrentColor = BLACK ' Assign default value.
End Select
End Property
' The following code sets the PenColor property for a drawing package
' by calling the Property let procedure.
PenColor = "Red"
另请参阅
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。