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