Instrucción Property Set

Declara el nombre, los argumentos y el código que forman el cuerpo de un procedimiento de propiedad, que establece una referencia a un objeto.

Sintaxis

[ Público | Privado | Friend ] [ Estático ] Nombre del conjunto de propiedades ( [arglist ], reference )
[ instrucciones ]
[ Exit Property ]
[ instrucciones ]
End Property

La sintaxis de la instrucción Property Set tiene estas partes:

Parte Descripción
Optional Opcional. Indica que el autor de llamada puede proporcionar o no el argumento.
Public Opcional. Indica que los demás procedimientos pueden obtener acceso al procedimiento Property Set en todos los módulos. Si se utiliza en un módulo que contiene una instrucción Option Private, el procedimiento no está disponible fuera de proyecto.
Private Opcional. Indica que solo los demás procedimientos pueden obtener acceso al procedimiento Property Set en el módulo en el que se declaró.
Friend Opcional. Se usa únicamente en un módulo de clase. Indica que el procedimiento Property Set está visible en todo el proyecto, pero no es visible para un controlador de una instancia de un objeto.
Static Opcional. Indica que las variables locales del procedimiento Property Set se conservan entre llamadas. El atributo Static no afecta a las variables declaradas fuera del procedimiento Property Set, incluso si se usan en el procedimiento.
name Obligatorio. Nombre del procedimiento Conjunto de propiedades ; sigue las convenciones de nomenclatura de variables estándar, salvo que el nombre puede ser el mismo que un procedimiento Property Get o Property Let en el mismo módulo.
arglist Obligatorio. Lista de variables que representan los argumentos que se pasan al procedimiento Property Set cuando se realiza la llamada. Los distintos argumentos están separados por comas.
reference Obligatorio. Variable que contiene la referencia de objeto usada en el lado derecho de la asignación de referencia del objeto.
statements Opcional. Cualquier grupo de instrucciones que se vaya a ejecutar en el cuerpo del procedimiento Property .

El argumento arglist consta de las siguientes sintaxis y partes:

[ Optional ] [ ByVal | ByRef ] [ ParamArray ] varname [ ( ) ] [ Astype ] [ =defaultvalue ]

Parte Descripción
Optional Opcional. Indica que no se necesita un argumento. Si se usan, todos los argumentos siguientes en arglist también deben ser opcionales y declararse usando la palabra clave Optional. Tenga en cuenta que no es posible que el lado derecho de una expresiónde conjunto de propiedades sea Opcional.
ByVal Opcional. Indica que el argumento se pasa por valor.
ByRef Opcional. Indica que el argumento se pasa por referencia. ByRef es el valor predeterminado en VBA, a diferencia de en Visual Basic .NET.
ParamArray Opcional. Solo se usa como último argumento de arglist para indicar que el argumento final es una matriz opcional de elementos de Variant. La palabra clave ParamArray le permite proporcionar un número arbitrario de argumentos. Es posible que no pueda usarse con ByVal, ByRef u Optional.
varname Obligatorio. Nombre de la variable que representa el argumento; sigue las convenciones de nomenclatura de variables estándar.
type Opcional. Tipo de datos del argumento que se ha pasado al procedimiento; puede ser Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (no compatible actualmente), Date, String (solo longitud de variable), Object, Variant o un tipo de objeto determinado. Si el parámetro no es Optional, puede especificarse un tipo definido por el usuario.
defaultvalue Opcional. Cualquier constante o expresión constante. Válida solo para parámetros Optional. Si el tipo es un Objeto, un valor predeterminado explícito solo puede ser Nothing.

Nota:

[!NOTA] Cada instrucción Property Set debe definir al menos un argumento para el procedimiento que define. Ese argumento (o el último argumento si hay más de uno) contiene la referencia de objeto real para la propiedad cuando se invoca el procedimiento definido por la instrucción Property Set. Se conoce como referencia en la sintaxis anterior. No puede ser Optional.

Comentarios

Si no se especifica explícitamente mediante Public, Private o Friend, los procedimientos Property son públicos de forma predeterminada. Si no se usa Static, el valor de las variables locales no se conserva entre llamadas.

La palabra clave Friend solo puede utilizarse en los módulos de clase. No obstante, los procedimientos de cualquier módulo de un proyecto pueden tener acceso a los procedimientos Friend. Un procedimiento Friend no aparece en la biblioteca de tipos de su clase primaria, ni tampoco puede un procedimiento Friend ser un enlace en tiempo de ejecución.

Todo el código ejecutable debe estar en procedimientos. No se puede definir un procedimiento Property Set dentro de otro procedimiento Property, Sub o Function .

La instrucción Exit Property provoca una salida inmediata de un procedimiento Property Set . La ejecución del programa continúa con la instrucción que sigue a la instrucción que llamó al procedimiento Property Set. Cualquier número de instrucciones Exit Property puede aparecer en cualquier lugar del procedimiento Property Set.

Como en un procedimiento Function y Property Get, un procedimiento Property Set es un procedimiento independiente que puede admitir argumentos, realizar una serie de instrucciones y cambiar los valores de los argumentos. Sin embargo, a diferencia de un procedimiento Function y Property Get , que devuelven un valor, solo puede usar un procedimiento Property Set en el lado izquierdo de una asignación de referencia de objeto o una instrucción Set .

Ejemplo

En este ejemplo se usa la instrucción Property Set para definir un procedimiento de propiedad que establece una referencia a un objeto.

' The Pen property may be set to different Pen implementations. 
Property Set Pen(P As Object) 
 Set CurrentPen = P ' Assign Pen to object. 
End Property

Consulte 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.