调用属性过程
下表列出了用于调用 属性过程的语法:
Property 过程 | 语法 |
---|---|
Property Get | [Set ] varname = [ object.] propname [ ( [arguments] ) ] |
Property Let | [Let ][ object.] propname [ ( [arguments] ) ] = argument |
Property Set | Set [ object.] propname [ ( [arguments] ) ] = objectArg |
属性过程调用至少需要一个参数、 赋值 (=) 运算符和属性过程名称。
- 在 赋值运算符右侧具有属性名称的调用中,Visual Basic 调用 Property Get 以从类/对象返回信息。
- 在 具有赋值运算符左侧属性名称的调用中,Visual Basic 调用 Property Let 或 Property Set 以更新类对象中的信息。
如果属性过程的声明有多个参数(调用 Property Let 或 Property Set),则将赋值运算符右侧的参数传递给 Property Let 或 Property Set 过程的最后一个参数。
例如,下图使用 Property Let 来显示属性过程中的参数调用顶部 () 如何与声明 (底部) 的参数相关联:
下面的代码示例演示属性过程参数和参数之间的关系。
'DemoType class declaration
Private pW
Private pX
Private pY
Private pZ
Property Get DemoProperty(w, x, y)
'Calling format is: `z = DemoProperty(w, x, y)`
' or `Set z = DemoProperty(w, x, y)`
w = pW
x = pX
y = pY
If IsObject(pZ) Then
Set DemoProperty = pZ
Else
DemoProperty = pZ
End If
End Property
Property Let DemoProperty(w, x, y, z)
'Calling format is `DemoProperty(w, x, y) = z`
pW = w
pX = x
pY = y
pZ = z
End Property
Property Set DemoProperty(w, x, y, z As Object)
'Calling format is `Set DemoProperty(w, x, y) = z`
pW = w
pX = x
pY = y
Set pZ = z
End Property
Sub DemoSub()
Dim myDemo As Object
Dim a, b, c, d
Dim w, x, y, z
Set myDemo = New DemoType
a = "Hello"
b = ", "
c = "world"
d = "!"
Debug.Print Join(Array(a, b, c, d), "") ' Hello, world!a
'Call Property Let DemoProperty(a, b, c, d)
Let myDemo.DemoProperty(a, b, c) = d
'Call Property Get
d = myDemo.DemoProperty(a, b, c)
Debug.Print Join(Array(a, b, c, d), "") ' Hello, world!
End Sub
实际上,具有多个参数的 Property 过程的唯一用途是创建属性的数组。
另请参阅
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。