Variables Programación VBA

Las variables en la programación VBA nos permiten almacenar datos con un nombre definido al que podremos hacer referencia en nuestro código. Para definir una variable debemos indicar el nombre y el tipo de datos que almacenará. El nombre podrá escribir en mayúsculas, minúsculas o en una combinación de ambas.

Declaración de Variables en Programación VBA

Se puede utilizar una variable en VBA en una instrucción de asignación sin haberla declarado previamente. De esta manera, la variable queda declarada implícitamente. Por ejemplo:

VariableWeb = "TeFormas.com"
VariableNum = 56

Sin embargo, nuestra programación será mucho más eficaz si las variables se declaran explícitamente con un tipo de datos. Si no deseamos utilizar declaraciones implícitas en VBA, podemos escribir la instrucción Option Explicit en el módulo antes de cualquier procedimiento. De esta manera, requerimos la declaración explícita de todas las variables en este módulo.

Para poder realizar la declaración explícita de una variable normalmente usaremos la instrucción Dim. La sintaxis de esta instrucción es la siguiente:

Dim nombre_variable as Tipo_datos

Si colocamos esta instrucción dentro de un procedimiento, sólo podremos usar la variable en ese procedimiento. Por otro lado, si deseamos utilizar la variable en el módulo entero crearemos la variable en la parte superior de la ventana de código, antes de cualquier procedimiento.

Dim strTexto As String 
Declaración Variables Programación VBA

En el ejemplo anterior, no podríamos usar la variable IntVariableLocal en el procedimiento llamado rutina.

Para que la variable esté disponible para todos los procedimientos del proyecto, independientemente del módulo, debemos utilizar la instrucción Public. Por ejemplo:

Public strTexto As String 

También podemos utilizar la instrucción Private para declarar variables. De esta manera sólo podrán ser usadas a nivel de módulo

Private strTexto As String 

Por último, al usar la instrucción Static en lugar de una instrucción Dim para declarar una variable en un procedimiento, la variable declarada mantendrá su valor entre llamadas para ese procedimiento. En el caso de utilizar la instrucción Dim la variable se inicia con el valor Null cada vez que se llama al procedimiento.

Si lo deseas, puedes acceder a la Explicación del equipo de soporte de Microsoft Office sobre este tema.

Reglas de nomenclatura de las variables

  • El nombre siempre debe empezar por una letra.
  • No se pueden usar espacios, puntos (.) o los caracteres !, @, &, $, # en el nombre.
  • El tamaño máximo es de 255 caracteres.
  • No se pueden usar variables con el mismo nombre en el mismo ámbito.
  • Se recomienda usar un prefijo delante del nombre de variable que indique el tipo de dato.

Tipos de Variables en Programación VBA

En la declaración de las variables debemos indicar el tipo de dato que va a contener. Veamos los tipos de datos que podemos utilizar:

  • String: almacenará una cadena de caracteres.
Dim StrTextoFijo As String * 10 ' cadena de 10 caracteres
Dim StrTextoVariable As String ' cadena de longitud variable
  • Byte: números comprendidos entre 0 y 255.
  • Integer: contendrá números comprendidos entre -32.768 y 32767
  • Long: números comprendidos entre -2.147.483.648 y 2.147.483.647
  • Single: -3,402823E38 a -1,401298E-45 para valores negativos. 1,401298E-45 a 3,402823E38 para valores positivos
  • Double: -1,79769313486231E308 a – 4,94065645841247E-324 para valores negativos. 4,94065645841247E-324 a 1,79769313486232E308 para valores positivos
  • Currency (moneda): De -922.337.203.685.477,5808 a 922.337.203.685.477,5807

  • Date: Las variables de tipo fecha pueden admitir tanto fechas como horas.
  • Object: Este tipo de variables pueden contener un objeto de Excel. Si conocemos el tipo de objeto podemos indicarlo en la declaración de la variable. A estas variables les asignaremos el objeto mediante la instrucción Set. Por ejemplo:
Dim ObjRango As Range
Set ObjRango = Range("A1:A10")

Boolean: variables que sólo admiten los valores de True o False.

  • Variant: Este tipo de variables admiten cualquier tipo de información. Lo utilizamos cuando no tenemos claro que tipo de información va a contener la variable.

Arrays

Las variables de tipo Arrays son matrices de varias dimensiones. Por ejemplo, si queremos guardar los días de la semana, podríamos crear un array de 7 elementos. Declaramos este tipo de variables de la siguiente manera:

Dim StrDias(6) As String

Después del nombre de la variable, indicamos el número de elementos que va a contener entre paréntesis. Cuando utilicemos el array hay que tener en cuenta que la primera posición corresponde al cero. En el ejemplo anterior:

StrDias(0) = "lunes"
StrDias(1) = "martes"

También podemos crear arrays de varias dimensiones. En este caso declaramos el array de la siguiente manera:

Dim StrDias(6,1) As String

StrDias(0,0) = "lunes"
StrDias(0,1) = "Laboral"
StrDias(1,0) = "martes"
StrDias(1,1) = "Laboral"
StrDias(2,0) = "miércoles"
StrDias(2,1) = "Festivo"

De esta manera, comparando el array a una tabla, habríamos almacenado en los primeros elementos del array los siguientes datos:

Constantes

Las constantes en la programación VBA también nos permiten almacenar datos con un nombre definido al que podremos hacer referencia en nuestro código. Sin embargo, a las constantes se les asigna un valor que no va a ser modificado durante la ejecución del código.

Las constantes se declaran con la instrucción Const, usando la siguiente sintaxis:

Const NombreConstante As Tipo_dato = Valor

Por ejemplo:

Const PI As Single = 3,1416

Excel dispone de una serie de constantes ya definidas que serán usadas por los objetos de Excel o en las instrucciones y funciones. Podemos buscar estas constantes mediante el Examinador de objetos.

Constantes Programación VBA

Para poder avanzar en el desarrollo de macros en Excel también es necesario conocer:

Además, te recomendamos nuestros curso orientado al diseño de macros.

Diseño de macros en Excel. Con ejemplos prácticos

Esta entrada es parte de nuestro curso Diseño de macros en Excel. Con ejemplos prácticos

Diseño de macros en Excel. Con ejemplos prácticos