La instrucción “OPTION EXPLICIT” impide que se pueda utilizar ninguna variable sin declararla antes, de tal modo que Excel nos reportará un error de compilación cada vez que introduzcamos una variable sin declarar. El que hagamos indispensable la declaración de variables, evitará entre otras cosas los problemas derivados de variables mal escritas en el código, que de lo contrario crearían nuevas variables.
Vamos a abrir el editor de macros de Excel y escribir las siguientes líneas:
Sub Variables()
Dim Val1 as integer
Val1=1000
Range(“A1”)=Val1
Val2=300
Range(“A2”)=Val2
End Sub
Esta macro escribirá el valor 1000 en la celda A1 y el valor 300 en A2. Observemos que hemos declarado la variable Val1 pero no así la variable Val2, y no obstante ello la macro se ha ejecutado correctamente.
Ahora escribamos la instrucción “Option Explicit” antes del encabezado del procedimiento y tratemos de ejecutar de nuevo la macro:
Nos aparecerá un mensaje de error de compilación que notifica que no se ha definido la variable y en el código se muestra resaltada la variable Val2. Esto es porque la instrucción «Option Explicit» establece que sea absolutamente necesario que todas las variables sean declaradas.
Ahora colocaremos el cursor de edición al final de la instrucción «Option Explicit» y pulsaremos la tecla Retorno para que se inserte una nueva línea en la que escribiremos “Dim Val2” y volveremos a ejecutar la macro. Fijémonos que, ni siquiera hace falta establecer de qué tipo es la variable, tan solo es necesario declararla para que se compile todo correctamente.
La raya de separación que antes estaba bajo la primera instrucción ahora está bajo la instrucción que acabamos de introducir. Esto indica que tanto la instrucción «Option Explicit» como la declaración de la variable Val2 afectan a todo el módulo, mientras que la declaración de la variable Val1 se encuentra a nivel de procedimiento. Veamos que importancia puede tener esto si a continuación del procedimiento Variables(), creamos otro nuevo al que llamaremos Suma():
Sub Suma()
Val1 = 1000
Val2 = 300
Dim Val3 As Integer
Val3 = Val1 + Val2
Range(«A3») = Val3
End Sub
… y ejecutamos dicho procedimiento.
Efectivamente, obtenemos otro error de compilación pues la variable Val1 estaba declarada en otro procedimiento distinto al que ahora ejecutamos. Por su parte, la variable Val2 al estar declarado a nivel de módulo, es reconocida correctamente.
Descubre más desde Asiento descuadrado
Suscríbete y recibe las últimas entradas en tu correo electrónico.