Código VBA: Option Explicit

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

explic01

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:

explic02

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.

explic03

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.

explic04

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.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *