Вызывающие процедуры свойств
В следующей таблице приведен синтаксис для вызова процедур свойств:
Процедура свойства | Синтаксис |
---|---|
Property Get | [Задать ] варнаме = [ объект.] propname [( [аргументы] )] |
Property Let | [Let ] [ объект.] propname [( [аргументы] )] = argument |
Property Set | Задать [ объект.] propname [( [аргументы] )] = 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
На практике процедуры свойств с несколькими аргументами используются только с одной целью — для создания массивовсвойств.
См. также
- Темы по основам Visual Basic
- Операторы Visual Basic
- Сообщения об ошибках пользовательского интерфейса Visual Basic
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.