Compartir a través de


Procedimientos de propiedad de llamada

En la tabla siguiente se muestra la sintaxis para llamar a procedimientos de propiedad:

procedimiento de propiedad Sintaxis
Property Get [Establecer ] varname = [ object.] propname [( [arguments] )]
Property Let [Let ] [ objeto.] propname [( [arguments] )] = argument
Property Set Establecer [ objeto.] propname [( [arguments] )] = objectArg

Las llamadas a procedimientos de propiedad requieren al menos un argumento, el operador de asignación (=) y el nombre del procedimiento de propiedad.

  • En una llamada con el nombre de propiedad en el lado derecho del operador de asignación, Visual Basic llama a Property Get para devolver información de la clase o objeto.
  • En una llamada con el nombre de propiedad en el lado izquierdo del operador de asignación, Visual Basic llama a Property Let o Property Set para actualizar la información dentro del objeto de clase.

Si la declaración de un procedimiento de propiedad tiene varios parámetros, llamando a Property Let o Property Set, pasa el argumento del lado derecho del operador de asignación al último parámetro a los procedimientos Property Let o Property Set .

Por ejemplo, en el diagrama siguiente se usa la propiedad Let para mostrar cómo los argumentos de la llamada al procedimiento de propiedad (en la parte superior) se relacionan con los parámetros de la declaración (en la parte inferior):

Property Let

En el ejemplo de código siguiente se muestra la relación entre los argumentos del procedimiento de propiedad y los parámetros.

'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

En la práctica, el único uso para los procedimientos de propiedad con varios argumentos es el de crear matrices de propiedades.

Vea también

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.