Instrucción Set

Asigna una referencia de objeto a una variable o propiedad.

Sintaxis

Establecerobjectvar= {[ New ] objectexpression | Nothing }

La instrucción Set tiene estas partes:

Parte Descripción
objectvar Obligatorio. Nombre de la variable o propiedad; sigue las convenciones de nomenclatura estándar de las variables.
New Opcional. New se usa normalmente durante la declaración para habilitar la creación de objetos implícitos. Cuando se usa New con Set, crea una nueva instancia de la clase. Si varobjeto contiene una referencia a un objeto, la referencia se libera cuando se asigna la nueva. La palabra claveNew no se puede usar para crear nuevas instancias de ningún tipo de datos intrínseco y no se puede usar para crear objetos dependientes.
objectexpression Obligatorio. Expresión que consiste en el nombre de un objeto, otra variable declarada del mismo tipo de objeto o una función o método que devuelve un objeto del mismo tipo de objeto.
Nothing Opcional. Cancela la asociación de varobjeto con cualquier objeto específico. Al asignar Nothing a objectvar , se liberan todos los recursos de sistema y memoria asociados al objeto al que se hace referencia anteriormente cuando ninguna otra variable hace referencia a él.

Comentarios

Para que sea válido, varobjeto debe ser un tipo de objeto coherente con el objeto que se asigna a él.

Las instrucciones Dim, Private, Public, ReDim y Static solo declaran una variable que hace referencia a un objeto. No se hace referencia al objeto real hasta que use la instrucción Set para asignar un objeto específico.

En el ejemplo siguiente se muestra cómo se usa Dim para declarar una matriz con el tipo Form1. No existe ninguna instancia de Form1 realmente. Set asigna a continuación las referencias a nuevas instancias de Form1 a la variable myChildForms. El código debe usarse para crear formularios secundarios en una aplicación MDI.

Dim myChildForms(1 to 4) As Form1 
Set myChildForms(1) = New Form1 
Set myChildForms(2) = New Form1 
Set myChildForms(3) = New Form1 
Set myChildForms(4) = New Form1 

Normalmente, cuando usa Set para asignar una referencia de objeto a una variable, no se crea una copia del objeto para esa variable. Lo que se crea es una referencia al objeto. Más de una variable de objeto puede hacer referencia al mismo objeto. Ya que estas variables son referencias al objeto en lugar de copias del objeto, cualquier cambio en el objeto se refleja en todas las variables que hacen referencia a él. Sin embargo, cuando usa la palabra clave New en la instrucción Set, realmente está creando una instancia del objeto.

Ejemplo:

En este ejemplo se usa la instrucción Set para asignar referencias de objeto a variables. Se supone que YourObject es un objeto válido con una propiedad Text.

Dim YourObject, MyObject, MyStr 
Set MyObject = YourObject    ' Assign object reference. 
' MyObject and YourObject refer to the same object. 
YourObject.Text = "Hello World"    ' Initialize property. 
MyStr = MyObject.Text    ' Returns "Hello World". 
 
' Discontinue association. MyObject no longer refers to YourObject. 
Set MyObject = Nothing    ' Release the object. 

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.