Variables y tipos de datos en VBA Excel

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:

  1. 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”
  2. 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:

  1. Su longitud debe ser inferior a 255 caracteres.
  2. No se permite espacio entre caracteres.
  3. No debe comenzar con un número entero.
  4. 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».

Customize-the-Ribbon

 

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.

Developer-Option

 

Paso 2: En este paso, declararemos nuestra variable en el editor visual basic. Para ello, vaya a Desarrollador > Editor de Visual Basic .

Open-VBA-Editor

 

Esto abrirá el Editor de código de Visual Basic, donde debemos escribir nuestro script VBA.

Visual-Basic-Editor

 

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.

VBA-Script

 

Una vez que lo ejecutamos usando el botón Ejecutar, obtendremos el siguiente resultado.

Output

 

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

Procedure-Level-Scope

 

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.

Final-output

 

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

Module-Level

 

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> «.

Macros-In

 

 Una vez que lo ejecutemos, obtendremos el resultado en las celdas A1 y A2. 

Final-output

 

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,

Click-on-the-Run-button

Figura 12 – Salida

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.

Final-output

 

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.

Click-on-the-command-button

Figura 14 – Botón de Comando

 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.

 Command-Button-View

 

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

VBA-Script-For-Button

 

Paso 3: En este paso, guardaremos nuestro script. Para esto, haga clic en el botón Guardar en el Editor de VBA. 

Saving-VBA-Button-Script

 

Excel abrirá una ventana emergente que le pedirá que guarde las macros. Necesitamos hacer clic en «Sí» y lo guardará.

Saving-Macro-To-Workbook

 

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.

Moving-Out-Of-Design-Mode

 

Una vez que hayamos terminado con esto, ejecutaremos nuestro script haciendo clic en el commandButton1 . Dará la siguiente salida.

Final-Output

 

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».

Publicación traducida automáticamente

Artículo escrito por ankur035 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *