Fórmulas y Funciones en Excel – Una Guía Rápida

Argumentos de las Funciones y Fórmulas en Excel

Las fórmulas y funciones en Excel requieren de la designación correcta de sus argumentos. Por ejemplo una suma requiere definir sus elementos, una resta el minuendo y sustraendo.

Si las celdas que van a operar son contiguas, se hace más fácil pues sólo debemos indicar en el argumento el inicio y el final del grupo de celdas. Podemos ver en el ejemplo de la imagen la forma aritmética natural en la que se pueden sumar uno a uno los elementos, y la alternativa de separar con dos puntos “:” la primera y última celda del grupo que necesitas incluir en el arreglo de la suma.

Ejemplo de la función SUMA en Excel:

Esta modalidad puede aplicarse a la mayoría de las fórmulas y funciones de Excel, respetando por supuesto las reglas de cada operación.

Estructura de las funciones y fórmulas de Excel y su comparación en VBA

A continuación te explicamos las estructuras de las funciones y fórmulas más usadas en Excel y su equivalencia en VBA (Visual Basic For Applications).

La palabra “Expresión” en las columnas de las tablas correspondientes a VBA te indicarán que es una función de hoja de cálculo; es decir, para utilizarlas deberías sustituir el término “Expresión” por “Application.WorksheetFunction”. Si tu macro está desarrollada en Excel para operar en esa misma aplicación, no es necesario escribir “Application” (bastaría con sustituir "Expresión" por "WorksheetFunction"), aunque siempre es recomendable hacerlo para asegurar la estabilidad de tu código.

Es importante que conozcas que cualquier fórmula que escribas en una hoja de cálculo también la podrías escribir en el código VBA, sin embargo en algunos  casos no habrá una equivalencia directa entre las fórmulas en Excel y VBA; si te encontraras en esa situación solo tendrías que hacer unas pocas cosas para lograr el cálculo que deseas.

Cálculo de operaciones aritméticas y matemáticas

A continuación te presentamos la estructura de algunas de las operaciones matemáticas básicas en Excel, como lo son la Suma, Resta, Multiplicación, División, Potencia y Raíz Cuadrada. También te mostramos cómo escribir estas operaciones en tu código VBA.

Operación Estructura Excel Ejemplo Excel Estructura VBA Ejemplo VBA
Suma  (opción 1) =SUMA(Arg1 : Arg3) =SUMA(A1:A3) Expresión. Sum(Range(Arg1, Arg3)) Expresión. Sum(Range( Cells(1, 1), Cells(3, 1)))
Suma  (opción 2) Arg1+ Arg2 + Arg3 =A1+A2+A3 Arg1 + Arg2 + Arg3 Cells(1,1)+Cells(2,1)+ Cells(2,1)
Resta Arg1 - Arg2 =A1-A2 Arg1 - Arg2 Cells(1,1)-Cells(2,1)
Multiplicación Arg1 * Arg2 =A1*A2 Arg1 * Arg2 Cells(1,1)*Cells(2,1)
División Arg1 / Arg2 =A1/A2 Arg1 / Arg2 Cells(1,1)/Cells(2,1)
Potencia (opción 1) Arg1^Arg2 =A1^A2 Arg1^Arg2 Cells(1,1)^Cells(2,1)
Potencia (opción 2) =POTENCIA(Arg1; Arg2) =POTENCIA(A1; A2) Arg1^Arg2 Cells(1,1)^Cells(2,1)
Raíz Cuadrada =RAIZ(Arg1) =RAIZ(A1) Sqr(Arg1) Sqr(Cells(1, 2))

Ejemplo del uso de las fórmulas Suma, Resta, Multiplicación, División, Potencia y Raíz Cuadrada en Excel:

En la siguiente tabla te resumimos la estructura de otras operaciones de uso común en Excel, como el cálculo del Promedio, Desviación Estándar e Intervalo de Confianza. También encontrarás la estructura de las funciones Contar y ContarA, que se usan para contar el número de celdas de un rango que contienen números (Contar) o que no están vacías (ContarA).

Operación Estructura Excel Ejemplo Excel Estructura VBA Ejemplo VBA
Celdas no vacías en rango (opción 1) = CONTARA (Arg1; Arg2; Arg3) =CONTARA(A1; A2; A3) Expresión.CountA( Arg1, Arg2, Arg3) Expresión.CountA(Range(Cells(1, 1), Cells(2, 1), Cells(3, 1)))
Celdas no vacías en rango (opción 2) = CONTARA (Arg1: Arg3) =CONTARA(A1:A3) Expresión. CountA ( Range(Arg1, Arg3)) Expresión.CountA(Range(Cells(1, 1), Cells(3, 1)))
Celdas con números en rango (opción 1) = CONTAR (Arg1; Arg2; Arg3) =CONTAR(A1; A2; A3) Expresión.Count( Arg1, Arg2, Arg3) Expresión.Count(Range(Cells(1, 1), Cells(2, 1), Cells(3, 1)))
Celdas con números en rango (opción 2) = CONTAR (Arg1: Arg3) =CONTAR(A1:A3) Expresión.Count( Range(Arg1, Arg3)) Expresión.Count(Range(Cells(1, 1), Cells(3, 1)))
Promedio (opción 1) =PROMEDIO(Arg1; Arg2; Arg3) =PROMEDIO(A1; A2; A3) Expresión.Average( Arg1, Arg2, Arg3) Expresión.Average(Cells(1,1), Cells(2,1), Cells(3,1))
Promedio (opción 2) =PROMEDIO(Arg1: Arg3) =PROMEDIO(A1:A3) Expresión.Average( Range(Arg1, Arg3)) Expresión.Average(Range( Cells(1,1), Cells(3,1)) )
Desviación estándar (opción 1) =DESVEST(Arg1; Arg2; Arg3) =DESVEST(A1;A2;A3) Expresión.StDev(Arg1, Arg2, Arg3) Expresión.StDev( Cells(1,1), Cells(2,1), Cells(3,1) )
Desviación estándar (opción 2) =DESVEST(Arg1: Arg3) =DESVEST(A1:A3) Expresión.StDev( Range(Arg1, Arg3)) Expresión.StDev(Range(Cells(1, 1), Cells(3, 1)))
Intervalo de confianza  (opción 1) =INTERVALO.CONFIANZA.NORM(Arg1; Arg2; Arg3) INTERVALO.CONFIANZA.NORM(0,95;2;3) Expresión. Confidence_Norm( Arg1; Arg2, Arg3) Expresión.Confidence_Norm( 0.95, 2, 3)
Intervalo de confianza  (opción 2) =INTERVALO.CONFIANZA.NORM(Arg1; Arg2; Arg3) =INTERVALO.CONFIANZA.NORM(0,95;F5;F3) Expresión. Confidence_Norm( Arg1; Arg2, Arg3) Expresión.Confidence_Norm( alpha, Sigma, n)

Ejemplo del uso de las fórmulas Contar, ContarA, Promedio, Desvest e Intervalo.Confianza.Norm en Excel.

Redondeo

Una función de mucha utilidad en Excel es el redondeo de nuestro cálculo, ya que contribuye a hacer una presentación elegante de los resultados obtenidos.

En la siguiente tabla conocerás las estructuras de los tipos de redondeo y su equivalencia directa en VBA. En la tabla observarás dos argumentos, el primero se refiere al número que deseas redondear y el segundo a la cantidad de decimales o factor de multiplicación que gobernará el redondeo.

Tipo de redondeo Estructura Excel Ejemplo VBA Estructura Excel Ejemplo VBA
Redondeo =REDONDEAR( Arg1; Arg2) =REDONDEAR( 3,141592653589;2) Expresión.Round(Arg1, Arg2) Expresión.Round( 3.141592653589, 2)
Hacia arriba REDONDEAR.MAS( Arg1; Arg2) =REDONDEAR.MAS( 3,14159265358979;0) Expresión.RoundUp( Arg1, Arg2) Expresión.RoundUp(3.141592653589, 0)
Hacia abajo =REDONDEAR.MENOS( Arg1; Arg2) =REDONDEAR.MENOS( 3,141592653589;0) Expresión.RoundDown( Arg1, Arg2) Expresión.RoundDown(3.141592653589, 0)
Múltiplo =REDOND.MULT( Arg1; Arg2) =REDOND.MULT( 3,141592653589;0,2) (*) (*)
(*): No tiene equivalencia directa Excel−VBA

Ejemplo del uso de la función Redondear en Excel:

Operaciones Lógicas

Las funciones lógicas son de mucha utilidad en Excel ya que permiten decidir qué acciones o cálculos serán llevados a cabo según el valor de algún(as) celdas. En la siguiente tabla conocerás las estructuras de algunas de estas funciones y su equivalencia directa en VBA.

Prueba Lógica Estructura Excel Ejemplo Excel Estructura VBA Ejemplo VBA
"Igual que" = Arg1= Arg2 =B2=10 Arg1= Arg2 Cells(2,2)=10
"Mayor que" = Arg1> Arg2 =B2>10 Arg1> Arg2 Cells(2,2)>10
"Menor que" = Arg1< Arg2 =B2<10 Arg1< Arg2 Cells(2,2)<10
"Mayor o igual que" = Arg1>= Arg2 =B2>=10 Arg1>= Arg2 Cells(2,2)>=10
"Menor o igual que" = Arg1<= Arg2 =B2<=10 Arg1<= Arg2 Cells(2,2)<=10
"Y" =Y(Arg1>= Arg2; Arg3>= Arg4) =Y(B2>=10; 8>=B3; 8>=10) PruebaLogica1 And PruebaLogica2 Cells(2, 2) >= 10 And Cells(3, 2) >= 10
"O" =O(Arg1>= Arg2; Arg3>= Arg4) =O(B3>=10; 8>=B4; 8>=10) PruebaLogica1 Or PruebaLogica2 Cells(2, 2) >= 10 Or Cells(3, 2) >= 10
Condicional =O(PruebaLogica; ResVerd; ResFalso) =SI((B2>=10)= VERDADERO;" Aprobado"; "Reprobado") If PruebaLogica Then     ResVerd
Else    
ResFalso End If
If Cells(2, 2) > 10 Then     Cells(9, 5) = "Aprobado"
Else    
Cells(9, 5) = "Reprobado" End If

Donde:

  • PruebaLogica: es la evaluación que deseas hacer. Debe ser formulada de manera que su resultado sea VERDADERO o FALSO.
  • ResVerd: es la acción que se haría en caso de que el resultado de la prueba lógica resulta VERDADERO.
  • ResFalso: es la acción que se haría en caso de que el resultado de la prueba lógica resulta FALSO.

Ejemplo del uso de las pruebas lógicas en Excel:

Fórmulas con Fecha y Hora

Las funciones con la fecha y hora nos permiten extraer información de tiempo (fecha y hora) del contenido de las celdas de nuestra hoja de cálculo. En la siguiente tabla conocerás las estructuras de las funciones relacionadas con las fechas y el tiempo.

Función Estructura Excel Ejemplo Excel Estructura VBA Ejemplo VBA
Ahora =AHORA() =AHORA() Now() Now()
Año =AÑO(Arg1) =AÑO(B2) Year(Arg1) Year(Cells(2,2))
Mes =MES(Arg1) =MES(B2) Month(Arg1) Month(Cells(2,2))
Dia =DIA(Arg1) =DIA(B2) Day(Arg1) Day(Cells(2,2))
Hora =HORA(Arg1) =HORA(B2) Hour(Arg1) Hour(Cells(2,2))
Minuto =MINUTO(Arg1) =MINUTO(B2) Minute(Arg1) Minute(Cells(2,2))
Segundo =SEGUNDO(Arg1) =SEGUNDO(B2) Second(Arg1) Second(Cells(2,2))
Día de la semana =DIASEM(Arg1) =DIASEM(B2) Weekday(Arg1) Weekday(Cells(2,2))
Fracción de año =FRAC.AÑO(Arg1; Arg2) =FRAC.AÑO(B2;B3) Expresión.YearFrac(Arg1, Arg2 Expresión.YearFrac(Cells(2,2), Cells(3,2))

Ejemplo del uso de las funciones de Año, Mes, Día, Hora, Minuto, Segundo, Día de la Semana y Fracción del año en Excel.

Operaciones con Texto

Existen algunas funciones que nos permiten modificar el texto introducido en las celdas de nuestro libro o extraer información del texto contenido en las celdas. En la siguiente tabla conocerás las estructuras de las funciones para manipulación de texto y su equivalencia directa en VBA.

Función Estructura Ejemplo Estructura Ejemplo
Concatenar (opción 1) Arg1&Arg2 B2 & " " & B3 Arg1 & Arg2 Cells(2,2) & “ “ & Cells(3,2)
Concatenar (opción 2) =CONCATENAR( Arg1, Arg2) =CONCATENAR( B2; " ";B3) Arg1 & Arg2 Cells(2,2) & “ “ & Cells(3,2)
Caracteres desde la derecha =DERECHA(Arg1; NumCaract) =DERECHA(B2;2) Right(Arg1, NumCaract) Right(Cells(2, 2), 2)
Caracteres desde la izquierda =IZQUIERDA( Arg1; NumCaract) =IZQUIERDA(B2;2) Left(Arg1, NumCaract) Left(Cells(2, 2), 2)
Longitud del texto =LARGO(Arg1) =LARGO(B2) Len(Arg1) Len(Cells(2, 2))
Extraer caracteres del texto =EXTRAE(Arg1; PosInic; NumCaract) =EXTRAE(B2;2;2) Mid(Arg1, PosInic, NumCaract) Mid(Cells(2, 2), 2, 2)
Reemplazar =SUSTITUIR(Arg1; Arg2; Arg3) =SUSTITUIR(“Hola Mundo”;" ";"") Replace(Arg1, Arg2, Arg3) Replace(Cells(2, 2) & " " & Cells(3, 2), " ", "")
Minúscula =MINUSC(Arg1) =MINUSC(B2) LCase(Arg1) LCase(Cells(2, 2))
Mayúscula =MAYUSC(Arg1) =MAYUSC(B2) UCase(Arg1) UCase(Cells(2, 2))

Donde:

  • Arg1, Arg2, Arg3: son los argumentos (textos) de la función
  • PosInic: es la posición inicial de la manipulación del texto
  • NumCaract: es la cantidad de caracteres del texto que serán modificados o extraídos.

Ejemplo del uso de las funciones de manipulación y extracción de textos en Excel:

Quieres saber más? Contáctanos…

 

 

Uso de Select Case en VBA

La selección de casos, o Select-Case, nos permite tomar decisiones basadas en el valor de una variable. Como puedes imaginar, es una alternativa al condicional If Else, y en determinadas situaciones puede resultar más adecuada.

La estructura Select Case se encarga de dirigir el flujo de información en nuestra macro según el valor de la variable seleccionadora. Esta selección resulta en la ejecución de acciones específicas, como se muestra en el siguiente esquema.

Esquema de Select Case

La variable seleccionadora puede ser de cualquier tipo. Una de las diferencias más importantes entre Select Case y el condicional If Else es que la evaluación se realiza directamente sobre el resultado de una variable, lo que significa que no podemos utilizar operadores lógicos (And/Or) en esta evaluación.

Estructura del Select Case en VBA

La estructura básica del Select Case es la siguiente:

Select Case Variable
    Case Resultado que tomaría la variable
        Acciones
End Select

Ejemplo de Select Case en VBA

Si deseamos aplicar un color específico a las celdas según el resultado de la evaluación “Approved” o “Disapproved”, podríamos usar la siguiente rutina:

i = 1
Do Until Cells(i, 1) = ""
  Select Case Cells(i, 1)
    Case "Approved"
      Cells(i, 1).Interior.Color = RGB(0, 255, 0) ' Verde
    Case "Disapproved"
      Cells(i, 1).Interior.Color = RGB(255, 0, 0) ' Rojo
  End Select
  i = i + 1
Loop

Con esta rutina, las celdas que contengan la palabra “Approved” se pintarán de verde, mientras que las que contengan “Disapproved” tendrán color rojo.

Celdas coloreadas en Excel

Con la práctica, irás adquiriendo destrezas que te permitirán escribir un código de programación más compacto y menos propenso a errores.

¿Te gustaría saber más? Contáctanos para obtener más información.

 

Bucles en VBA: Optimiza tu Programación

Este tutorial es esencial para comprender cómo los bucles en VBA pueden simplificar tus tareas en Excel. Los lazos o loops son fundamentales en la programación, y entender su funcionamiento te permitirá crear programas más eficientes.

¿Qué es un bucle en programación?

Un loop es la repetición cíclica de una actividad, limitada a un número finito de repeticiones. Un bucle se puede interrumpir al alcanzar el número establecido de repeticiones o al cumplirse una condición específica. Para más información sobre condicionales, revisa nuestro tutorial sobre Condicionales en VBA.

Definición de un Loop en programación
Figura 1. Definición de un Loop en programación.

Tipos de bucles en VBA

En VBA, existen dos estructuras principales para implementar bucles: For / Next y Do / Loop. Cada una tiene características únicas que la hacen adecuada para diferentes situaciones. A continuación, exploraremos ambos tipos con ejemplos prácticos.

Estructura For Next

La estructura For Next permite realizar una acción repetitiva desde un número inicial (NI) hasta un número final (NF). A continuación, se muestra un ejemplo de cómo se puede estructurar un bucle For:

NI NF Total de repeticiones
1 10 10
10 19 10
81 91 10

El número de repeticiones debe ser un entero. La estructura For Next se declara de la siguiente manera:

For Variable = NI To NF Step incremento Declaración del lazo
Actividad repetitiva Actividad
Next Declaración del lazo

Ejemplo del bucle For Next en VBA

A continuación, veremos cómo encontrar la última celda ocupada en un rango utilizando un bucle For Next:

Ejemplo estructura For Next
Figura 2. Ejemplo de la estructura For Next.
Sub Tutorial5a_Loops()
For i = 1 To 10
  If Cells(i + 1, 1) = "" Then
    Ultima_fila = i 
    Exit For
  End If
Next
MsgBox ("Última fila: " & Ultima_fila)
End Sub

En este código, el programa verifica si la celda está vacía, y si es así, se detiene y muestra la última fila ocupada.

Estructura Do Loop

La estructura Do Loop no incrementa automáticamente la variable de repetición. Ofrece tres modalidades que permiten un control más flexible:

Modalidad Do

Esta forma permite declarar el bucle y especificar la condición de salida. Debe usarse con precaución para evitar bucles infinitos.

Do Declaración del lazo
Actividad repetitiva Actividad
Variable=Variable+1 Control del número de repetición
Loop Declaración del lazo

Ejemplo del bucle Do Loop en VBA

El siguiente ejemplo muestra cómo encontrar la última fila ocupada utilizando Do Loop:

Ejemplo estructura Do
Figura 3. Ejemplo de la estructura Do.
Sub Tutorial5b_Loops()
i = 2
Do
  If Cells(i, 1) = "" Then
    Ultima_fila = i - 1
    Exit Do
  End If
  i = i + 1
Loop
MsgBox ("Última fila: " & Ultima_fila)
End Sub

Modalidad Do While

Esta modalidad se ejecuta mientras se cumpla una condición especificada. Veamos cómo aplicarla:

Estructura Do While
Figura 4. Estructura Do While.
Sub Tutorial5c_Loops()
i = 2
Do While Cells(i, 1) <> ""
  'Actividad repetitiva
  i = i + 1
Loop
Ultima_fila = i - 1
MsgBox ("Última fila: " & Ultima_fila)
End Sub

Modalidad Do Until

Esta modalidad se ejecuta hasta que se cumpla una condición. Aquí hay un ejemplo:

Ejemplo estructura Do Until
Figura 5. Ejemplo de la estructura Do Until.
Sub Tutorial5d_Loops()
i = 2
Do Until Cells(i, 1) = ""
  'Actividad repetitiva
  i = i + 1
Loop
Ultima_fila = i - 1
MsgBox ("Última fila: " & Ultima_fila)
End Sub

Como puedes ver, el bucle se ejecuta hasta encontrar la primera celda vacía.

Conclusión

Con lo aprendido en este tutorial, podrás utilizar las estructuras de bucles en VBA sin dificultad. Se recomienda evitar la modalidad Do por el riesgo de bucles infinitos. Opta por For Next, Do While o Do Until para un control más seguro y efectivo.

¿Quieres saber más? Contáctanos...

Uso del condicional If en VBA (if, elseif, else, end if)

A partir de este tutorial, empezaremos a explorar las bondades de programar, siendo una de ellas la capacidad de hacer que el computador “tome decisiones” a través de los condicionales.

¿Qué es un Condicional?

Un condicional es una evaluación que se realiza en el flujo de la información (una o más variables) y permite discernir si se cumple o no con una condición establecida. Según la respuesta, se tomarán diferentes acciones.

¿Cómo Escribir un Condicional en VBA?

Para escribir un condicional (If en VBA), debemos evaluar una variable y dar instrucciones sobre qué hacer si se cumple la condición. Esta evaluación se realiza utilizando el comando If.

Ejemplo de Condicional If en VBA: Entradas al Cine

Imaginemos que estamos creando un sistema para vender entradas de cine, donde el precio de la entrada depende de la edad del espectador. En este caso, definimos las siguientes reglas:

  • Los niños de 12 años o menos recibirán una entrada "Preferencial".
  • Los adultos mayores de 12 años recibirán una entrada "Regular".

Para implementar estas reglas en VBA, utilizaremos una estructura condicional If que evaluará la edad ingresada en la celda B2. Si la edad es menor o igual a 12, se asignará "Preferencial" a la celda C2. De lo contrario, se asignará "Regular". Aquí tienes el código correspondiente:


Sub AsignarEntrada()
    Dim edad As Integer
    ' Leer la edad de la celda B2
    edad = Range("B2").Value

    ' Evaluar la condición
    If edad <= 12 Then
        Range("C2") = "Preferencial" ' Entrada para niños
    Else
        Range("C2") = "Regular" ' Entrada para adultos
    End If
End Sub

En este ejemplo, si el usuario ingresa un valor en la celda B2 (por ejemplo, 10), el sistema evaluará la condición:

  • Si 10 <= 12 es verdadero, la celda C2 mostrará "Preferencial".
  • Si el usuario ingresa 15, el sistema evaluará 15 <= 12, lo que es falso, y la celda C2 mostrará "Regular".

Condicionales If Anidados en VBA

A veces, es necesario evaluar una segunda condición después de la primera evaluación. Esto se denomina "Condicional Anidado". La estructura será similar a la siguiente:

Ejemplo de Condicional If Anidado en VBA

Continuando con el ejemplo de la entrada al cine, podríamos agregar una evaluación adicional. Supongamos que queremos ofrecer entradas "Preferenciales" también a personas de tercera edad (mayores de 59 años). El código podría verse así:


Sub AsignarEntradaCompleta()
    Dim edad As Integer
    edad = Range("B2").Value

    If edad <= 12 Then
        Range("C2") = "Preferencial" ' Entrada para niños
    ElseIf edad > 59 Then
        Range("C2") = "Preferencial" ' Entrada para tercera edad
    Else
        Range("C2") = "Regular" ' Entrada para adultos
    End If
End Sub

Uso de Or y And (Operadores Lógicos) en Condicionales VBA

También es posible evaluar múltiples condiciones en un mismo condicional usando los operadores lógicos And y Or.

Ejemplos de Uso de Or y And en Condicionales de VBA

Si queremos considerar un rango de edad para las entradas "Regular", podemos usar el operador And:


Sub AsignarEntradaConOperadores()
    Dim edad As Integer
    edad = Range("B2").Value

    If edad > 12 And edad < 60 Then
        Range("C2") = "Regular"
    Else
        Range("C2") = "Preferencial"
    End If
End Sub

De manera similar, usando el operador Or podemos evaluar si una entrada es "Preferencial" si la edad es menor a 13 o mayor a 59:


Sub AsignarEntradaConOr()
    Dim edad As Integer
    edad = Range("B2").Value

    If edad < 13 Or edad > 59 Then
        Range("C2") = "Preferencial"
    Else
        Range("C2") = "Regular"
    End If
End Sub

Conclusiones

Como has visto, hay diferentes formas de programar instrucciones de decisión en VBA, y cada método tiene sus ventajas. Con la práctica, mejorarás en la escritura de código más compacto y libre de errores.

¿Quieres saber más? Contáctanos...

Guía Completa sobre Variables en VBA: Aprende a Declararlas y Usarlas

¿Qué son las Variables en VBA y por qué se usan?

Las variables son elementos fundamentales en cualquier lenguaje de programación, incluyendo VBA. Permiten almacenar y manipular datos, como números, texto y estructuras más complejas. Al declarar variables adecuadamente, optimizamos el uso de memoria y mejoramos la velocidad de ejecución del código.

Analogía de la Vida Real: Imagina que estás organizando un armario. Si lo haces de manera ordenada, podrás encontrar tus prendas rápidamente y aprovechar mejor el espacio. Lo mismo ocurre con las variables en programación: al gestionarlas correctamente, optimizamos su uso y capacidad.

El buen manejo de las variables contribuye con el orden y la eficiencia del código.

El buen manejo de las variables contribuye con el orden y la eficiencia del código.

¿Qué es la Declaración de Variables en VBA?

La declaración de variables consiste en instruir al sistema para reservar un espacio de memoria según el tipo de variable que se necesita. Aunque en VBA no es obligatorio declarar variables, hacerlo previene la ralentización del programa, ya que VBA no tendrá que determinar el tipo de variable cada vez que se encuentre con una no definida.

Tipos de Variables en VBA

Las variables en VBA ocupan diferentes cantidades de memoria según su tipo. A continuación, se presentan algunos de los tipos de variables más comunes:

Tipo de Variable Denominación en VBA Espacio Ocupado (bytes) Rango de Valores Ejemplo
Booleana Boolean 2 Verdadero o Falso Answer = True
Entero Integer 2 -32,768 ↔ 32,767 Cant = 5
Doble Precisión Double 8 ±1.79769313486232 × 10^308 Pi = 3.14159265
Moneda Currency 8 -922,337,203,685,477 ↔ 922,337,203,685,477 Monto = 5.5
Texto String 1 por carácter Cualquier texto Prod = "Carro"
Variable Especial Variant Varía Varía según el tipo de datos Total = Pi * Cant

VBA asigna automáticamente la categoría Variant a las variables no declaradas. Es recomendable declarar el tipo de variable para optimizar el uso de memoria y mejorar el rendimiento.

Niveles de Variables en VBA

En VBA, las variables pueden ser públicas (Public) o privadas (Private), dependiendo de su nivel de accesibilidad:

Tipo de Variable Usada en
Privada Un mismo procedimiento (rutina o función) en un mismo módulo
Pública Todos los procedimientos de todos los módulos

Las variables privadas pueden tener el mismo nombre en procedimientos diferentes, ya que no son compartidas. Por el contrario, las variables públicas mantienen su valor activo mientras se ejecute la macro.

¿Cómo Declarar una Variable en VBA?

Para declarar una variable, sigue estos pasos:

  1. Abre el editor de comandos de VBA (puedes consultar nuestro primer tutorial sobre macros en Excel).
  2. Utiliza la instrucción Dim para declarar la variable.

Ejemplo de Declaración:

Dim pi As Double

En este caso, estamos reservando espacio para la variable pi, que almacenará un número de doble precisión.

Mostrar el Resultado: Para imprimir el valor, utiliza MsgBox:

MsgBox(pi)

Consejos para el Uso de Variables en VBA

  • Para obligar a VBA a declarar siempre las variables, usa Option Explicit al principio de cualquier módulo. Esto te ayudará a evitar errores de declaración.
  • Si olvidas declarar una variable, VBA resaltará el error, facilitando su identificación y corrección.
  • Utiliza la combinación CTRL + Espacio para acceder a un menú de variables declaradas al escribir.

Sobre los Nombres de las Variables en VBA

Elige nombres descriptivos para tus variables, ya que esto facilita la comprensión del código. Algunas reglas a seguir son:

  • El primer carácter debe ser una letra.
  • VBA no distingue entre mayúsculas y minúsculas; Var y var son la misma variable.
  • No se permiten espacios ni ciertos símbolos en los nombres.
  • El máximo número de caracteres para un nombre de variable es 255.

¿Quieres saber más? Contáctanos...