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

注意

每个 Property Let 语句都必须为其定义的过程定义至少一个 有效 参数。 “有效”表示不应使用“可选”或“ParamArray”对其进行修改。 在调用由 Property Let 语句定义的过程时,该参数(在有多个参数时为最后一个参数)包含赋给属性的实际值。 在前面的语法中,该参数是指 value

备注

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

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

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

Exit Property 语句会导致立即退出 Property Let 过程。 程序执行将继续运行调用了 Property Let 过程的语句后面的语句。 任意数目的 Exit Property 语句可以显示在 Property Let 过程中的任何位置。

类似于 FunctionProperty 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。