Tipo de variable booleana
El tipo de datos booleano de VBA se utiliza para almacenar valores verdaderos o falsos. Verdadero también se puede representar por 1 y Falso por 0.
Para declarar una variable booleana, usa la declaración Dim (abreviatura de Dimension):
1 | Dim blnA como booleano |
Luego, para asignar un valor a una variable, simplemente usa el signo igual:
1 | blnA = Verdadero |
Cuando pones esto en un procedimiento, podría verse así:
123456789101112 | Sub blnExample ()'declarar la variable booleanaDim blnA como booleano'ejecutar código para completar la variable; por lo general, el código es una declaración if o caseSi Rango ("A1")> 0 entoncesblnA = verdaderoDemásblnA = FalsoTerminara si'mostrar el cuadro de mensajeMsgBox "La prueba para ver si la celda tiene un valor mayor que 0 es" & blnAEnd Sub |
Si ejecuta el código anterior, se mostrará el siguiente cuadro de mensaje.
Declarar variable booleana a nivel de módulo o global
En el ejemplo anterior, declaramos el Booleano variable dentro de un procedimiento. Las variables declaradas con un procedimiento solo se pueden usar dentro de ese procedimiento.
En su lugar, puede declarar variables booleanas a nivel de módulo o global.
Nivel de módulo
Tu declaras Nivel de módulo variables en la parte superior de los módulos de código con el Oscuro declaración.
Estas variables se pueden usar con cualquier procedimiento en ese módulo de código.
Nivel global
Tu tambien declaras Nivel global variables en la parte superior de los módulos de código. Sin embargo, en lugar de utilizar el Oscuro declaración, usaría la Público declaración para indicar que el Booleano La variable está disponible para ser utilizada en todo su proyecto VBA.
1 | BlnA público como booleano |
Si tuvieras que declarar el Booleano variable a nivel de módulo y luego intentar usarla en un módulo diferente, obtendría un error.
Sin embargo, si ha utilizado la palabra clave Public para declarar el Booleano variable, el error no ocurriría y el procedimiento se ejecutaría perfectamente.
Usando una variable booleana
Utiliza la variable booleana en comparación lógica. Estos se usan a menudo con declaraciones If para probar 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, tal vez para ver si un valor es mayor que otro.
12345678 | Sub blnExample ()'declarar la variable booleanaDim blnA como booleano'prueba para ver si un número es mayor que el siguiente númeroblnA = 45> 68'mostrar el cuadro de mensajeMsgBox blnAEnd Sub |
Si ejecuta el código anterior, obtendrá el siguiente cuadro de mensaje.
¡Porque, por supuesto, 45 no es mayor que 68!
Usar operadores booleanos
Como las variables booleanas se usan en la comparación lógica, podemos usar los operadores lógicos Y y O para probar y ver si más de una condición es verdadera o falsa.
Usando el operador AND
Podemos usar la función AND para ver si se cumplen AMBAS condiciones.
12345678 | Sub blnExample ()'declarar la variable booleanaDim blnA como booleano'use el operador AND para probar y ver si ambas condiciones son verdaderasblnA = 10> 13 y 15> 12'mostrar el cuadro de mensajeMsgBox blnAEnd Sub |
o podríamos ejecutar la misma prueba usando una declaración If:
123456789101112 | Sub blnExample ()'declarar la variable booleanaDim blnA como booleano'use el operador AND para probar y ver si ambas condiciones son verdaderasSi 10> 13 y 15> 12 entoncesblnA = VerdaderoDemásblnA = FalsoTerminara si'mostrar el cuadro de mensajeMsgBox blnAEnd Sub |
Ambos ejemplos anteriores volverían FALSO debido al hecho de que 10 es NO mayor de 13 - y AMBOS las condiciones deben ser Verdaderas para que el Booleano sea Verdadero.
Usando el operador OR
Podemos usar la función OR para ver si se cumple UNA DE las condiciones.
12345678 | Sub blnExample ()'declarar la variable booleanaDim blnA como booleano'use el operador AND para probar y ver si ambas condiciones son verdaderasblnA = 10> 13 o 15> 12'mostrar el cuadro de mensajeMsgBox blnAEnd Sub |
o podríamos ejecutar la misma prueba usando una declaración If:
123456789101112 | Sub blnExample ()'declarar la variable booleanaDim blnA como booleano'use el operador AND para probar y ver si ambas condiciones son verdaderasSi 10> 13 O 15> 12, entoncesblnA = VerdaderoDemásblnA = FalsoTerminara si'mostrar el cuadro de mensajeMsgBox blnAEnd Sub |
Estos ejemplos volverían CIERTO debido al hecho de que 10 NO es mayor que 13 PERO 15 ES mayor que 12 - ySÓLO UNO La condición debe ser Verdadera para que el booleano sea Verdadero.
Usar declaraciones If nos permite usar operadores más lógicos
Usando el operador NOT
También podemos usar el operador NOT con la variable booleana. El operador NOT niega el valor de la condición, por lo que si una condición es verdadera, el operador NOT devolverá falso.
12345678910111213141516 | Sub FindDifferences ()'declarar variables de rangoDim rng1 como rangoDim rng2 como rango'activar la hoja unoHojas de trabajo ("Hoja1"). Activar'poblar los rangosEstablecer rng1 = Rango ("A3")Establecer rng2 = Rango ("B3")'use el operador NOT para ver si los valores son iguales o no.Si no rng1.Value = rng2.Value, entoncesMsgBox "Los valores de las celdas no son iguales"DemásMsgBox "Los valores de las celdas son iguales"Terminara siEnd Sub |
Uso del operador lógico Xor
losXor El operador lógico se utiliza para comparar dos o más condiciones. Si una de las condiciones es verdadera, devolverá VERDADERO. Si hay 2 condiciones, y NINGUNAS son verdaderas o AMBAS son verdaderas, devolverá FALSO.
1234567891011121314151617 | Sub blnExample ()'declarar los enterosDim intA como enteroDim intB como entero'declarar la variable booleanaDim blnResult como booleano'rellenar las variablesintA = 5intB = 10'comprobar para ver si uno es ciertoSi intA = 5 Xor intB = 5 EntoncesblnResult = VerdaderoDemásblnResult = FalsoTerminara siMsgBox blnResultEnd Sub |
En el ejemplo anterior, como UNA de las condiciones es VERDADERA, el cuadro de mensaje volverá CIERTO.
1234567891011121314151617 | Sub blnExample ()'declarar los enterosDim intA como enteroDim intB como entero'declarar la variable booleanaDim blnResult como booleano'rellenar las variablesintA = 5intB = 5'comprobar para ver si uno es ciertoSi intA = 5 Xor intB = 5 EntoncesblnResult = VerdaderoDemásblnResult = FalsoTerminara siMsgBox blnResultEnd Sub |
Sin embargo, en el ejemplo anterior, como AMBAS condiciones son verdaderas, el cuadro de mensaje volverá FALSO.
1234567891011121314151617 | Sub blnExample ()'declarar los enterosDim intA como enteroDim intB como entero'declarar la variable booleanaDim blnResult como booleano'rellenar las variablesintA = 6intB = 8'comprobar para ver si uno es ciertoSi intA = 5 Xor intB = 5 EntoncesblnResult = VerdaderoDemásblnResult = FalsoTerminara siMsgBox blnResultEnd Sub |
y finalmente, como ambas condiciones son FALSAS, el cuadro de mensaje también devolverá FALSO.