El alcance de una variable en Excel VBA determina dónde puede utilizarse esa variable. El alcance de una variable se determina al declararla. Hay tres niveles de alcance: nivel de procedimiento , nivel de módulo , y nivel de módulo público .
Coloca un botón de comando en tu hoja de trabajo y añade las siguientes líneas de código:
1. Coloque los dos procedimientos (un procedimiento es un sub o una función) en un módulo. 2. En el Editor de Visual Basic, haga clic en Insertar, Módulo. 2. Añada las siguientes líneas de código:
2. Resultado al pulsar el botón de comando en la hoja (llamar a los dos subs):
Explicación: la variable txt tiene nivel de procedimiento de alcance porque se declara en el procedimiento (entre Sub y End Sub). Por lo tanto, sólo se puede utilizar esta variable en sub1. La variable txt no puede ser utilizada en sub2.
3. Cuando se quiere que una variable esté disponible para todos los procedimientos de un módulo, se está diciendo que se quiere que la variable tenga un alcance a nivel de módulo. Necesitas declarar la variable en la sección de Declaraciones Generales (en la parte superior del módulo). Ajuste ligeramente el código de la siguiente manera:
4. Resultado al pulsar el botón de comando en la hoja:
Explicación: la variable txt puede ser utilizada ahora en sub2. El nivel de módulo se utiliza indistintamente con el nivel de módulo privado. Eso es porque por defecto las variables declaradas con la declaración Dim en la sección de Declaraciones Generales son consideradas como privadas. También se puede ampliar el alcance de una variable como pública. Sigue leyendo.
5. Utilizando la palabra clave pública, su variable estará disponible para todos los procedimientos en todos los módulos de un libro de trabajo. Esto se llama alcance de nivel de módulo público. Ajusta ligeramente el código de la siguiente manera:
Explicación: ahora puedes crear un nuevo módulo y colocar un sub3 en este módulo. Utiliza el mismo código que sub2. Añade sub3 al código del botón de comando. Cuando haga clic en el botón de comando de la hoja de trabajo, obtendrá tres cuadros de mensaje que dicen «La variable sólo puede ser utilizada en este procedimiento» (ver archivo Excel descargable).