Información sobre la duración de las variables
El tiempo durante el que una variable conserva su valor se denomina duración. El valor de una variable puede cambiar durante su duración, pero conservará algún valor. Cuando una variable pierde ámbito, ya no tiene un valor.
Cuando un procedimiento comienza a ejecutarse, se inicializan todas las variables. Una variable numérica se inicializa en cero, una cadena de longitud variable se inicializa en una cadena de longitud cero (""), y una cadena de longitud fija se rellena con el carácter representado por el código de caracteres ASCII 0 o Chr( 0 ). Las variables Variant se inicializan en Empty. Cada elemento de una variable de tipo definido por el usuario se inicializa como si fuese una variable independiente.
Cuando se declara una variable de objeto, el espacio se reserva en memoria, pero su valor se establece en Nothing hasta que se le asigna una referencia de objeto mediante la instrucción Set .
Si el valor de una variable no ha cambiado durante la ejecución del código, conserva el valor inicializado hasta que pierde ámbito.
Una variable de nivel de procedimiento declarada con la instrucción Dim conserva un valor hasta que el procedimiento termina de ejecutarse. Si el procedimiento llama a otros procedimientos, la variable conserva su valor mientras esos procedimientos se estén ejecutando.
Si se declara una variable de nivel de procedimiento con la palabra clave Static , la variable conserva su valor siempre y cuando el código se ejecute en cualquier módulo. Cuando todo el código ha terminado de ejecutarse, la variable pierde su ámbito y su valor. Su duración es la misma que la de la variable de nivel de módulo.
Las variables de nivel de módulo y las variables estáticas son diferentes. En un módulo estándar o en un módulo de clase, conserva su valor hasta que detenga la ejecución del código. En un módulo de clase, conserva su valor siempre que exista una instancia de la clase. Las variables de nivel de módulo consumen recursos de memoria hasta que restablezca los valores, así que úselas solo cuando sea necesario.
Si incluye la palabra clave Static antes de una instrucción Sub o Function , los valores de todas las variables de nivel de procedimiento del procedimiento se conservan entre llamadas.
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.