Tema 2: La variables

Las variables en VBA

Es donde almacenamos los números o textos que usamos… Conoce los diferentes tipos de variables y cómo usarlas. Son tan importantes como las letras del abecedario.


Cuando uno empieza a usar VBA piensa que eso de declarar las variables no va con él. Que no hace falta hacerlo porque total no es muy largo el procedimiento y no va a hacer falta para nada.

Mi experiencia es que es mucho más cómodo declarar las variables aunque se tarde un poquito más. Principalmente son dos motivos los que finalmente me animan a declarar las variables y por lo que yo os animo a vosotros.

PARA QUÉ SIRVEN LAS VARIABLES EN VBA


  • El primero es que es mucho mejor declarar variables para ordenar los nombres, ser consecuente con ellos y así saber, un mes después de haber escrito el código, para que servían.
  • El segundo es para ahorrar en la memoria del proceso y por lo tanto en agilizar el mismo. 

En la siguiente imagen vemos un ejemplo de cómo  declarar las variables.
Image variables en VBA
Un truco : Las dos o tres primeras letras hacen mención al tipo de variable que hemos usado. Luego sigue el nombre de la variable que tiende a ser lo más descriptivo posible. De esta manera, la legibilidad del código es mucho mayor que si asignáramos variables como t, q, j, k…
PRINCIPALES TIPOS DE VARIABLES EN VBA
TIPO ENTERO
Para una variable numérica de valores de -32768 a 32767.
Para ello usaremos el código
Dim NombreVariable as Integer

Si tenemos almacenado un valor con algún tipo de variable que no sea de tipo Integer podremos convertirlo a Integer mediante el comando CInt. En la siguiente línea podemos ver el uso de este comando con un ejemplo sencillo.

Sub Convertir_a_integer()
     n = 9.56
     MsgBox CInt(n)
End Sub
El mensaje en pantalla devolverá el valor de 10, es decir, el redondeo del valor de la variable n.
TIPO LONG

El tipo long de variable es para valores enteros positivos o negativos pero con la diferencia de que puede almacenar valores mucho mayores, en concreto entre -2.147.483.648 y 2.147.483.648. La sintaxis de este tipo de variables es:
Dim NombreVariable as Long
Si queremos convertir un valor a tipo Long usaremos el método CLng(). En el ejemplo siguiente, vamos a convertir un número decimal muy grande en una variable tipo Long.
Sub Convertir_a_Long()
    n = 100000000.53
    MsgBox CLng(n)
End Sub
TIPO SINGLE
Para almacenar valores numéricos decimales aunque si requerimos una mayor precisión, usaremos variables tipo Double.
El código para declarar variables tipo Single es:
Dim NombreVariable as Single
Si, como en los casos anteriores, queremos convertir una variable a tipo Single usaremos el método CSng() como vemos en el siguiente ejemplo:
Sub Convertir_a_Single()
    n = 120.534253231
    MsgBox CSng(n)
End Sub
TIPO STRING
Para almacenar valores de cadenas de texto, es decir, uniones de cualquier tipo de caracter ya sea numérico o no numérico.
El código para declarar este tipo de variables es:
Dim NombreVariable as String
Para asignar el valor a este tipo de variables deberemos poner la cadena de texto (o de los caracteres que sean) entre comillas como puede verse en el siguiente ejemplo:
Sub Ejemplo()
    Dim Nombre_pais As String
    Nombre_pais= "Brasil"
End Sub
 Si tenemos un valor que no es tipo String, podremos convertirlo mediante el métido CStr() como puede verse en el siguiente ejemplo en el que la variable n almacena un número.
Sub Convertir_a_String()
    Dim st As String
        n = 53
        st = CStr(n)
End Sub
El resultado del código anterior guardará en la variable st el valor de 53 como tipo String.
TIPO VERDADERO O FALSO
Nos permite almacenar valores de variables del tipo verdadero o falso.
El código para su declaración es:
Dim NombreVariable as Boolean
TIPO VARIANT

Este tipo nos permite almacenar cualquier tipo de información ya sea numérica, de texto o del tipo verdadero o falso o cualquier otro que se nos ocurra. En definitiva, cuando no sabemos qué tipo de variable va a tener usaremos el tipo Variant, donde entran todos los tipos posibles. El inconveniente es que ocupa una gran cantidad de memoria.
El código para su declaración es:
Dim NombreVariable as Variant
Estos son los tipos de variables que usaremos con más frecuencia. Hay otro tipo de variables como los de fecha y hora pero no son tan comúnmente usados.


Option Explicit VBA – Declarar variables 


Una gran recomendación a la hora de hacer bien una macro desde cero es declarar todas las variables. En ocasiones, por despiste, se nos puede olvidar declarar alguna de las variables y para ello, un buen ejercicio para obligarse es escribir “Option Explicit” al comienzo de nuestro módulo.


De esta manera, cada vez que queramos ejecutar nuestra macro o la estemos depurando, nos saltará un error y nos llevará inmediatamente a la variable que no está declarada recordándonos que debemos hacerlo.

CUANDO USAR OPTION EXPLICIT VBA

En el siguiente ejemplo vemos qué es lo que pasa cuando tenemos una variable sin declarar y hemos usado la opción “Option Explicit”.


option explicit vba


Como se puede ver en la imagen anterior, la variable que no está declarada se subraya en azul y salta un mensaje de error que no nos permite ejecutar la macro hasta que no resolvamos este problema.


El error: “Compile error: Variable not definded” se soluciona sencillamente declarando la variable que ha interrumpido la ejecución.


Un truco que hace que nos obliguemos a declarar todas las variables para una mejor legibilidad

No hay comentarios:

Publicar un comentario