Property Set 语句
声明组成 Property过程主体的名称、参数和代码,该过程设置对对象的引用。
语法
[ 公共 | 私人 | 好友 ][ 静态 ] 属性集名称 ( [ arglist ], 引用 )
[ 语句 ]
[ Exit Property ]
[ 语句 ]
End Property
Property Set 语句的语法包含以下部分:
Part | 说明 |
---|---|
可选 | 可选。 指示参数是否可以由调用方提供。 |
Public | 可选。 指示 Property Set 过程可以由所有模块中的所有其他过程访问。 如果在包含 Option Private 语句的模块中使用此过程,则此过程在项目的外部不可用。 |
Private | 可选。 指示 Property Set 过程仅能由声明它的模块中的其他过程访问。 |
Friend | 可选。 仅在类模块中使用。 指示 Property Set 过程在整个项目中可见,但对于对象实例的控制器不可见。 |
Static | 可选。 指示在两次调用之间保留 Property Set 过程的局部变量。 Static 属性不影响在 Property Set 过程外部声明的变量,即使这些变量在该过程中使用也一样。 |
名称 | 必填。 属性集过程的名称;遵循标准变量命名约定,只是名称可以与同一模块中的 Property Get 或 Property Let 过程相同。 |
arglist | 必填。 变量的列表,代表在调用 Property Set 过程时传递给该过程的参数。 多个参数使用逗号分隔。 |
reference | 必填。 包含在对象引用赋值右侧使用的对象引用的变量。 |
statements | 可选。 要在 Property 过程主体中执行的任何一组语句。 |
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 或特定对象类型。 如果参数不是 Optional,那么还可以指定用户定义的类型。 |
defaultvalue | 可选。 任何常量或常量表达式。 仅对 Optional 参数有效。 如果该类型是 Object,则显式默认值只能为 Nothing。 |
注意
每个 Property Set 语句都必须为其定义的过程定义至少一个参数。 当调用 Property Set 语句定义的过程时,该参数 (或最后一个参数(如果有多个) 包含 属性 的实际对象引用)。 在前面的语法中,它称为 引用 。 它不能是 可选的。
备注
如果未使用 Public、 Private 或 Friend 显式指定属性过程,则 属性 过程默认为公共。 如果未使用 Static ,则不会在调用之间保留局部变量的值。
Friend 关键字只能用于类模块。 但是,项目的任何模块中的过程均可以访问 Friend 过程。 Friend 过程既不会显示在其父类的类型库中,也不会成为稍后可绑定的 Friend 过程。
所有可执行代码必须位于过程中。 不能在另一个 Property、Sub 或 Function 过程中定义 Property Set 过程。
Exit Property 语句会导致立即退出 Property Set 过程。 程序将继续执行已调用 Property Set 过程的语句后面的语句。 任意数量的 Exit Property 语句可以出现在 Property Set 过程的任意位置。
与 Function 和 Property Get 过程一样, Property Set 过程是一个单独的过程,它可以获取参数、执行一系列语句并更改其参数的值。 但是,与函数和 Property Get 过程不同,这两个过程都返回一个值,你只能在对象引用赋值或 Set 语句的左侧使用 Property Set 过程。
示例
此示例使用 Property Set 语句定义设置对象引用的 Property 过程。
' The Pen property may be set to different Pen implementations.
Property Set Pen(P As Object)
Set CurrentPen = P ' Assign Pen to object.
End Property
另请参阅
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。