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

注意

每个 Property Set 语句都必须为其定义的过程定义至少一个参数。 当调用 Property Set 语句定义的过程时,该参数 (或最后一个参数(如果有多个) 包含 属性 的实际对象引用)。 在前面的语法中,它称为 引用 。 它不能是 可选的

备注

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

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

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

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

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