¿Cómo usar la instrucción Property Set en VBA?

La instrucción Property Set en VBA (Visual Basic for Applications) se utiliza para definir una propiedad que asignará un objeto a una variable privada dentro de una clase. Esto significa que, en lugar de trabajar con un valor simple como un número o una cadena de texto, Property Set se utiliza para manejar y asignar referencias a objetos.

Ejemplo

VBA

' Definición de una clase llamada MiClase
Class MiClase
    Private pMiObjeto As Object ' Variable privada para almacenar el objeto

    ' Definir una propiedad pública para asignar pMiObjeto
    Public Property Set MiObjeto(value As Object)
        Set pMiObjeto = value
    End Property
    
    ' Definir otra propiedad pública para recuperar pMiObjeto
    Public Property Get MiObjeto() As Object
        Set MiObjeto = pMiObjeto
    End Property
End Class

En el ejemplo anterior, MiClase tiene una propiedad llamada MiObjeto. Hay dos partes en la definición de la propiedad: Property Set para asignar un objeto nuevo a la variable privada pMiObjeto, y Property Get para recuperar el objeto actualmente asignado.

Aquí se muestra cómo utilizar la clase y la propiedad definida:

VBA

' Crear un nuevo objeto de MiClase
Dim m As New MiClase
Dim o As Object

' Crear un nuevo objeto para asignar
Set o = New Collection ' Utilizando Collection como ejemplo, podría ser cualquier tipo de objeto

' Utilizar Property Set para asignar o a MiObjeto
Set m.MiObjeto = o

' Y luego podemos recuperar la propiedad con Property Get
Dim newObj As Object
Set newObj = m.MiObjeto

Cuando trabajamos con objetos y asignamos uno a otro utilizando Set, estamos trabajando con referencias a esos objetos en lugar de con sus valores. De ahí que cuando deseemos cambiar la referencia a un nuevo objeto, debemos utilizar Property Set.

Recuerda que a Property Set siempre se le debe pasar un argumento tipo Object o una clase específica. Si intentas pasar un valor primitivo como String o Integer, recibirás un error. Para valores no-objeto, deberás usar Property Let en lugar de Property Set.

Conoce nuestra tienda

Ver más productos

Mejora tu nivel y logra tus objetivo

Excel

Excel cursos

Access

cursos de Access

Power BI

cursos power BI

Ayúdanos a hacer crecer el proyecto

¡Únete a nuestro Grupo de Facebook!

Deja un comentario