Tipo de Datos Booleanos de VBA (Variable Dim)

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on marzo 28, 2023

Tipo de Variable Booleana

El tipo de dato Booleano de VBA se utiliza para almacenar valores Verdadero o Falso. Verdadero también puede representarse por 1 y Falso por 0.

Para declarar una variable booleana, se utiliza la sentencia Dim (abreviatura de Dimensión):

Dim blnA as Boolean 

A continuación, para asignar un valor a una variable, basta con utilizar el signo igual:

blnA = True

Cuando pones esto en un procedimiento, podría verse así:

Sub blnExample()
'declarar la variable booleana
   Dim blnA As Boolean
'ejecute el código para completar la variable; por lo general, el código es una declaración if o case
   If Range("A1") > 0 Then
       blnA = True
   Else
      blnA = False
   End If
'mostrar el cuadro de mensaje
   MsgBox "La prueba para ver si la celda tiene un valor mayor a 0 es " & blnA
End Sub

Si ejecutas el código anterior, se mostrará el siguiente cuadro de mensaje.

Mensaje de Prueba de la Condición

Declarar una Variable Booleana a Nivel de Módulo o Global

En el ejemplo anterior, hemos declarado la variable booleana dentro de un procedimiento. Las variables declaradas con un procedimiento sólo pueden utilizarse dentro de ese procedimiento.

Código de Muestra

 

En cambio, puedes declarar variables booleanas a nivel de módulo o global.

 

Nivel de Módulo

Las variables a nivel de módulo se declaran en la parte superior de los módulos de código con la sentencia Dim.

Código de Muestra Variable Booleana Global

 

Estas variables pueden ser usadas con cualquier procedimiento en ese módulo de código.

Nivel Global

También puedes declarar variables de nivel Global en la parte superior de los módulos de código. Sin embargo, en lugar de utilizar la sentencia Dim, utilizarás la sentencia Public para indicar que la variable booleana está disponible para ser utilizada en todo tu proyecto VBA.

Public blnA as Boolean

Código de Muestra Variable Publica

 

Si declararas la variable booleana a nivel de módulo y luego intentaras utilizarla en un módulo diferente, obtendrías un error.

Error Llamado de Variable fuera de Alcance

 

 

Sin embargo, si hubieras utilizado la palabra clave Public para declarar la variable booleana , el error no se produciría y el procedimiento se ejecutaría perfectamente.

Utilización de Una Variable Booleana

Las variables Booleanas se utilizan en comparaciones lógicas. A menudo se utiliza con sentencias If para comprobar si una condición es Verdadera o Falsa como en el ejemplo anterior, o en una línea de código para aplicar una prueba lógica – quizás para ver si un valor es mayor que otro.

Sub ejemploBooleano()
'declarar la variable booleana
   Dim blnA As Boolean
'comprueba si un número es mayor que el siguiente
   blnA = 45 > 68
'mostrar el mensaje con el resultado
   MsgBox blnA
End Sub

Si ejecuta el código anterior, obtendrá el siguiente cuadro de mensaje.

Resultado Prueba Condicional Variable Booleana

 

porque, por supuesto, ¡45 no es mayor que 68!

Uso de Operadores Booleanos

Como las variables booleanas se utilizan en la comparación lógica, podemos utilizar los operadores lógicos AND y OR para comprobar si más de una condición es verdadera o falsa.

Uso del Operador AND

Podemos utilizar la función AND para ver si se cumplen AMBAS condiciones.

Sub ejemploBooleano()
'declarar la variable booleana
   Dim blnA As Boolean
'utilizar el operador AND para comprobar si ambas condiciones son verdaderas
   blnA = 10 > 13 And 15 > 12
'mostrar el mensaje
   MsgBox blnA
End Sub

o podríamos realizar la misma prueba utilizando una sentencia If:

Sub ejemploBooleano()
'declarar la variable booleana
   Dim blnA As Boolean
'utilizar el operador AND para comprobar si ambas condiciones son verdaderas
   If 10 > 13 And 15 > 12 Then
      blnA = True
   Else
      blnA = False
   End If
'mostrar mensaje del resultado
   MsgBox blnA
End Sub

Ambos ejemplos anteriores devolverían FALSO debido a que 10 NO es mayor que 13 – y AMBAS condiciones tienen que ser Verdaderas para que el booleano sea Verdadero.

Usando el Operador OR

Podemos utilizar la función OR para ver si se cumple UNA DE las condiciones.

Sub ejemploBooleano()
'declarar la variable booleana
   Dim blnA As Boolean
'utilizar el operador OR para comprobar si una de las condiciones es verdadera
   blnA = 10 > 13 Or 15 > 12
'Mostrar el Mensaje
   MsgBox blnA
End Sub

o podríamos ejecutar la misma prueba usando una sentencia If:

Sub ejemploBooleano()
'declarar la variable booleana
   Dim blnA As Boolean
'utilizar el operador OR para comprobar si una de las condiciones es verdadera
   If 10 > 13 Or 15 > 12 Then
      blnA = True
   Else
      blnA = False
   End If
'Mostrar Mensaje
   MsgBox blnA
End Sub

Estos ejemplos devolverían VERDADERO debido al hecho de que 10 NO es mayor que 13 PERO 15 ES mayor que 12 – y SOLO UNA condición tiene que ser Verdadera para que el Booleano sea Verdadero.

Usar sentencias If nos permite usar más operadores lógicos

Uso del Operador NOT

También podemos utilizar el operador NOT con la variable booleana. El operador NOT niega el valor de la condición – así que si una condición es verdadera, el operador NOT devolverá falso.

Sub Encontrar_Diferencias()
'declarar variables de rango
    Dim rng1 As Range
    Dim rng2 As Range
'activar hoja uno
    Worksheets("Hoja1").Activate
'rellenar los rangos
    Set rng1 = Range("A3")
    Set rng2 = Range("B3")
'utilizar el operador NOT para ver si los valores son iguales o no
    If Not rng1.Value = rng2.Value Then
        MsgBox "Los valores de las celdas no son iguales"
    Else
        MsgBox "Los valores de las celdas son iguales"
    End If
End Sub

Uso del Operador Lógico Xor

El operador lógico Xor se utiliza para comparar dos o más condiciones. Si una de las condiciones es verdadera, devolverá VERDADERO. Si hay 2 condiciones, y NINGUNA es verdadera o AMBAS son verdaderas, devolverá FALSO.

Sub Ejemplo_bln()
'declarar los números enteros
   Dim intA As Integer
   Dim intB As Integer
'declarar la variable booleana
   Dim blnResult As Boolean
'rellenar las variables
   intA = 5
   intB = 10
'comprobar si uno es verdadero
   If intA = 5 Xor intB = 5 Then
      blnResult = True
   Else
      blnResult = False
   End If
   MsgBox blnResult
End Sub

En el ejemplo anterior, como UNA de las condiciones es VERDADERA, el cuadro de mensaje devolverá VERDADERO.

Sub Ejemplo_bln()
'declarar los números enteros
   Dim intA As Integer
   Dim intB As Integer
'declarar la variable booleana
   Dim blnResult As Boolean
'rellenar las variables
   intA = 5
   intB = 5
'comprobar si uno es verdadero
   If intA = 5 Xor intB = 5 Then
      blnResult = True
   Else
      blnResult = False
   End If
   MsgBox blnResult
End Sub

Sin embargo, en el ejemplo anterior, como AMBAS condiciones son verdaderas, el cuadro de mensaje devolverá FALSO.

Sub Ejemplo_bln()
'declarar los enteros
   Dim intA As Integer
   Dim intB As Integer
'declarar la variable booleana
   Dim blnResult As Boolean
'rellenar las variables
   intA = 6
   intB = 8
'comprueba si una es verdadera
   If intA = 5 Xor intB = 5 Then
      blnResult = True
   Else
      blnResult = False
   End If
   MsgBox blnResult
End Sub

y por último, como ambas condiciones son FALSAS, el cuadro de mensaje también devolverá FALSO.

vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples