domingo, 19 de diciembre de 2021

Forzar declaración explícita de variables en VBA para Microsoft Excel

En los lenguajes de programación existen dos formas de declarar variables.

La declaración explícita exige que sea el programador el que defina el nombre de la variable y el tipo de dato que puede almacenar.

El entorno de programación en caso de detectar el intento de usar una variable no definida generará un error.

Por otra parte existen lenguajes que permiten la declaración implícita de variables.

Esto es cuando el entorno de programación detecta el primer uso de una variable, comprueba qué valor se le ha asignado y crea la variable del tipo correspondiente.

VBA permite los dos modos de funcionamiento.

En VBA existe la instrucción Option Explicit para exigir la declaración explícita de variables.

En caso contrario visual Basic for Applications creará las variables a medida que las vaya encontrando.

Esto puede generar errores debido a fallos tipograficos como el que os mostramos en el ejemplo de hoy.

Siempre es recomendable utilizar la declaración explícita.

Esto nos dará un control total sobre las variables que usamos y el tipo de datos que almacenan.


El código del ejemplo es el siguiente:


Sub declaracionExplicitaVariables()

    

    'Declaramos una variable numerica

    Dim edad As Integer

    

    'asignamos un valor por error a una variable con otro nombre

    edade = 28

    

    'mostramos el valor de la variable declarada

    MsgBox (edad)


End Sub



Declaramos la variable edad

Asignamos el valor 28 a la variable

Mostramos el valor de la variable en pantalla

Ejecutamos la macro

Pero el valor mostrado no es el esperado.

Se muestra 0 cuando debería mostrarse 28.


Exigimos la declaración explícita de variables,

mediante la instrucción Option Explicit.

Y ejecutamos de nuevo la macro.


Ahora se muestra un error de compilación.

No se ha definido la variable.

Parece que se ha cometido un error tipográfico

al escribir el nombre de la variable edad.


Corregimos el error tipográfico.


Mediante copia y pega.


Y volvemos a ejecutar.


Ahora el resultado si es el esperado.




Sin la instrucción Option Explicit

VBA utiliza la definición implícita de variables, creando las variables que no han sido definidas, la primera vez que son usadas.

En este caso existían dos variables

edad con el valor 0

edade con el valor 28

a

No hay comentarios:

Publicar un comentario