En un sistema informático, las variables y los tipos de datos se utilizan casi en todos los programas para almacenar y representar datos. De manera similar, Excel VBA también tiene variables y tipos de datos para almacenar y representar datos y su tipo. En este artículo, aprenderemos sobre las variables de VBA, su alcance, tipos de datos y mucho más.
Variables VBA
Las variables VBA (Visual Basic for Application) son similares a las variables de otros lenguajes de programación, actúan como un contenedor que se utiliza para almacenar datos (enteros, strings, flotantes, etc.). Podemos usar las variables en el código en múltiples lugares y ejecutar los programas.
Definición de variables en VBA
VBA da permiso para definir variables de dos maneras:
- Implícitamente : en VBA, podemos declarar implícitamente variables usando el operador de asignación (=). Todas las variables que se declaran implícitamente en VBA son de tipo “ Variante ”. Las variables de tipo variante requerían más espacio de memoria que las variables habituales. Ejemplo: etiqueta=”gfg”
- Explícitamente : explícitamente podemos declarar variables usando la palabra clave » Dim «. La variable explícita también reduce los conflictos de nombres y los errores ortográficos. Ejemplo: Num como contraseña
Sintaxis para variables VBA
// definición de macro
Sub VBA_Variable_Example()
tenue <nombre>
Finalizar sub
Regla de variables de VBA:
- Su longitud debe ser inferior a 255 caracteres.
- No se permite espacio entre caracteres.
- No debe comenzar con un número entero.
- No se permite el punto (.) entre los caracteres.
Permitió | No permitido |
artículo_gfg | gfg.artículo |
dataStructureCurso1 | 1Estructura de datos del curso |
geekforgeeks | frikis para frikis |
Ejemplo:
En este ejemplo, definiremos una macro en Excel, e ingresaremos el código dentro de esa macro y ejecutaremos el código para comprender el funcionamiento de las variables VBA en Excel.
Paso 1: Primero, haremos que nuestra opción Desarrollador esté disponible en la barra de herramientas de Excel. Para esto, vaya a cualquiera de las herramientas (aquí, estamos eligiendo Dibujar) y luego haga clic derecho sobre ella y seleccione la opción «Personalizar la cinta».
Excel abrirá opciones emergentes, allí debemos marcar la casilla de verificación Desarrollador y hacer clic en Aceptar. Esto habilitará la opción Desarrollador y estará disponible en la barra de herramientas superior de Excel.
Paso 2: En este paso, declararemos nuestra variable en el editor visual basic. Para ello, vaya a Desarrollador > Editor de Visual Basic .
Esto abrirá el Editor de código de Visual Basic, donde debemos escribir nuestro script VBA.
Paso 3: En este paso, escribiremos nuestros scripts VBA. Para esto, haremos doble clic en ThisWorkbook debajo de los objetos de Microsoft Excel en el panel izquierdo y abriremos el editor y escribiremos el siguiente código.
Sub VBA_Variable_GFG_Example()
Rango («a1»). Valor = «Curso de estructura de datos»
Rango («b1»).Valor = «Curso de estructura de datos»
Rango («c1»).Valor = «Curso de estructura de datos»
Var = “Curso de estructura de datos”
Rango(“a3”).Valor = Var
Rango(“b3”).Valor = Var
Rango(“c3”).Valor = Var
Finalizar sub
En lo anterior, podemos ver sin usar variables si queremos realizar cambios en la string » Curso de estructura de datos » y agregar » GeeksForGeeks » antes de cada string, debemos repetirlo en tres lugares diferentes. Pero si usamos una variable, solo necesitamos cambiarla en un lugar donde declaramos nuestra variable. Esto reducirá la carga de trabajo.
Sub VBA_Variable_GFG_Example()
Rango («a1»). Valor = «Curso de estructura de datos»
Rango («b1»).Valor = «Curso de estructura de datos»
Rango («c1»).Valor = «Curso de estructura de datos»
Var = “GeeksForGeeks – Curso de estructura de datos”
Rango(“a3”).Valor = Var
Rango(“b3”).Valor = Var
Rango(“c3”).Valor = Var
Finalizar sub
Escribiremos este código en el editor de scripts VBS y lo ejecutaremos. Esto imprimirá la string de salida en las celdas definidas en el código.
Una vez que lo ejecutamos usando el botón Ejecutar, obtendremos el siguiente resultado.
Alcance de las variables de VBA
El alcance de las variables se determina cuando declaramos la variable. En VBA, el alcance indica dónde se puede usar la variable. Hay tres niveles de alcances de la variable:
1. Nivel de Procedimiento: Son aquellas variables que se pueden utilizar dentro del procedimiento en el que están definidas. Un Procedimiento es un Sub o una Función
Ejemplo: En este ejemplo, veremos el nivel de procedimiento del alcance de la variable VBA. Para esto, abra el editor de VBA y escriba el siguiente código.
subsub1()
Dim res como string
res = «La variable que se puede usar dentro del procedimiento en el que están definidas».
Rango(“a1”).Valor = res
Finalizar sub
Una vez, hacemos clic en el botón Ejecutar en el editor de VBA, obtendremos la salida. El texto se imprimirá en la celda A1.
2. Nivel de Módulo: También se le conoce como Nivel de Módulo Privado. Puede ser utilizado por cualquier procedimiento dentro del mismo módulo. Estas variables deben declararse fuera de todos los procedimientos, en la parte superior del módulo.
Ejemplo: En este ejemplo, buscaremos el alcance del módulo de las variables. Para ello, crearemos un nuevo módulo. Abriremos el Editor de VBA y en el panel izquierdo (explorador de proyectos) haremos clic con el botón derecho y crearemos un nuevo módulo para agregarle el siguiente código.
Dim txt como string
SubprocedimientoDemo()
txt = «Un sub o función es un procedimiento, las variables definidas dentro de ellos solo son accesibles dentro de ellos»
Rango(“a1”).Valor = txt
Finalizar sub
Sub PrivateModuleDemo()
txt = «Variable que se define dentro de un módulo, son accesibles por todos los procedimientos dentro de ese módulo»
Rango(“a2”).Valor = txt
Finalizar sub
Después de esto, solo debemos hacer clic en el botón Ejecutar. Además, cuando lo ejecutamos, pregunta qué macros ejecutar, allí debemos elegir » Macros In: <All Projects> «.
Una vez que lo ejecutemos, obtendremos el resultado en las celdas A1 y A2.
3. Nivel de módulo público: como sugiere el nombre, el alcance de las variables del módulo público se encuentra en el nivel de proyecto. Si definimos cualquier variable como una variable de módulo público, se puede usar en cualquier módulo dentro de ese proyecto.
Ejemplo: en este ejemplo, agregaremos dos módulos diferentes y definiremos una variable VBA pública dentro de un módulo e intentaremos acceder a ella desde ambos módulos. A continuación se muestra el código para module1 y module2.
Módulo 1
Res. pública como string
Sub demo_1()
res = «geeks»
Rango(“a1”).Valor = res
Finalizar sub
Módulo2
Sub demo_2()
res = «geeksforgeeks»
Rango(“a2”).Valor = res
Finalizar sub
Una vez, hecho con ambos módulos. Simplemente haga clic en el botón Ejecutar. La salida se imprimirá en las celdas A1 y A2,
Vida útil de la variable
Las variables pueden conservar su valor hasta su alcance. La vida útil de una variable indica cuánto tiempo una variable puede retener su valor. Para extender el alcance y, por lo tanto, la vida útil de una variable, necesitamos declarar la variable con una palabra clave estática . Si declaramos una variable con una palabra clave estática, las variables conservarán su valor incluso después de que todas las macros hayan terminado de ejecutarse.
Ejemplo: En este ejemplo, definiremos una variable usando la palabra clave estática y la ejecutaremos varias veces para verificar si retiene el valor o no. Necesitamos escribir el siguiente código en el Editor de VBA.
Sub StaticVariableDemo()
Recuento estático como entero
cuenta = cuenta + 1
MsgBox (recuento)
Finalizar sub
Después de esto, necesitamos ejecutarlo. Cada vez que hagamos clic en el botón ejecutar, el cuadro de mensaje devolverá el valor actualizado. (1, 2, 3…..) y así extenderá su alcance y vida útil.
Tipos de datos VBA
En las computadoras, usamos tipos de datos para diferenciar entre enteros y strings, etc. Los tipos de datos que asignaremos a una variable deciden qué debe almacenarse en esa variable, es decir, los valores que deben almacenarse en la variable es depende del tipo de datos de la variable. En VBA, los tipos de datos se dividen en dos tipos principales:
1. Tipo de datos numéricos: los tipos de datos numéricos se utilizan para realizar operaciones matemáticas como sumas, restas, etc. Se utilizan para manejar los números en varios formatos de representación. En el tipo de datos numéricos, el tipo integral representa solo los números enteros (cero, positivo y negativo). Los tipos no integrales representan tanto la parte entera como la fraccionaria.
Tipos de datos | Tamaño de la memoria | Rango de valores |
Byte | 1 2 años | 0 a 255 |
Entero | 2 bytes | -32.768 a 32.767 |
Largo | 4 bytes | -2.147.483.648 a 2.147.483.648 |
Único | 4 bytes | Valores negativos (-3.402823E+38 a -1.401298E-45) y valores positivos (1.401298E-45 a 3.402823E+38) |
Doble | 8 bytes | Valores negativos (-1,79769313486232e+308 a -4,94065645841247E-324) y valores positivos (4,94065645841247E-324 a 1,79769313486232e+308) |
Divisa | 8 bytes | -922.337.203.685.477.5808 al 922.337.203.685.477.5807 |
Decimal | 12 bytes | Sin decimales (+/- 79 228 162 514 264 337 593 543 950 335) y hasta 28 decimales (+/- 7,9228162514264337593543950335) |
2. Tipo de datos no numéricos: los operadores aritméticos no manipulan los tipos de datos no numéricos. Se componen de textos, datos, etc.
Tipos de datos | Tamaño de la memoria | Rango de valores |
String (tamaño/longitud fijos) | Equivalente a la longitud de String (en bytes) | 1 a 65,400 caracteres |
String (longitud variable) | Longitud de la string + 10 bytes | 0 a 2 mil millones de caracteres |
booleano | 2 bytes | Verdadero Falso |
Objeto | 4 bytes | objeto incrustado |
Datos | 8 bytes | 1 de enero de 100 al 31 de diciembre de 9999 |
Variante (numérico) | 16 bytes | Algún valor |
variante (texto) | Longitud del texto + 22 bytes | 0 a 2 mil millones de caracteres |
Nota : si no declaramos ningún tipo de datos, el VBA será variable por defecto como un tipo de variante.
Ejemplo:
En este ejemplo, escribiremos un script simple para crear un botón y con un clic de ese botón ocurrirá un evento y obtendremos el resultado.
Paso 1: Primero insertaremos un botón de comando en nuestra hoja de cálculo de Excel. Para esto, vaya a Desarrollador> Insertar> Botón de comando y haga clic en él.
Después de eso, podemos insertar el botón en cualquier parte de la hoja que queramos. Solo tenemos que arrastrarlo sobre la hoja de Excel.
Paso 2: En este paso, escribiremos el script para nuestro botón. Para ello, simplemente haga doble clic en el botón . Esto abrirá el Editor de secuencias de comandos de VBA donde escribiremos el siguiente código. En el siguiente código, estamos definiendo GFG y el curso como tipo de datos String y res como tipo de datos Integer.
Sub CommandButton1_Click() privado
Dim GFG como string, res como entero, curso como string
GFG = «GeeksParaGeeks»
resolución = “01”
curso = «Preparación de la entrevista»
Rango(“a1”).Valor = GFG
Rango(“b1”).Valor = res
Rango(“c1”).Valor = curso
Finalizar sub
Paso 3: En este paso, guardaremos nuestro script. Para esto, haga clic en el botón Guardar en el Editor de VBA.
Excel abrirá una ventana emergente que le pedirá que guarde las macros. Necesitamos hacer clic en «Sí» y lo guardará.
Paso 4: Ahora, ejecutaremos nuestro script. Para esto, necesitamos hacer clic sobre el botón de comando. Pero antes de hacer clic sobre él, debemos salir del modo de diseño . Para salir de cualquier modo, simplemente haga clic en el modo una vez.
Una vez que hayamos terminado con esto, ejecutaremos nuestro script haciendo clic en el commandButton1 . Dará la siguiente salida.
Nota: Si escribimos «01» en cualquier celda de Excel, imprimirá «1» por defecto. Es por eso que en la salida, en la celda b1 solo se imprime «1».