Chamando procedimentos de propriedade

A tabela a seguir lista a sintaxe para chamar procedimentos de propriedade:

Procedimento Property Sintaxe
Obter Propriedade [Set ] varname = [ object.] propname [( [argumentos] )]
Deixar Propriedade [Let ] [ object.] propname [( [argumentos] )] = argumento
Definir Propriedade Definir [ objeto.] propname [( [argumentos] )] = objectArg

As chamadas de procedimentos de propriedade exigem pelo menos um argumento, o operador de atribuição (=) e o nome do procedimento de propriedade.

  • Em uma chamada com o nome da propriedade no lado direito do operador de atribuição, o Visual Basic chama Propriedade Obter para retornar informações da classe/objeto.
  • Em uma chamada com o nome da propriedade no lado esquerdo do operador de atribuição, o Visual Basic chama Property Let ou Property Set para atualizar informações dentro do objeto de classe.

Se a declaração de um procedimento de propriedade tiver vários parâmetros, chamando Property Let ou Property Set, passará o argumento no lado direito do operador de atribuição para o último parâmetro para os procedimentos Property Let ou Property Set .

Por exemplo, o diagrama a seguir usa Property Let para mostrar como os argumentos na chamada de procedimento de propriedade (na parte superior) se relacionam com parâmetros na declaração (na parte inferior):

Deixar Propriedade

O exemplo de código a seguir demonstra a relação entre argumentos e parâmetros de procedimento de propriedade.

'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

Na prática, o único uso para procedimentos de propriedade com vários argumentos é criar matrizes de propriedades.

Confira também

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.