Operadores
Objetivos del capítulo
Hay muchas palabras clave en VBA y los operadores están entre las que más utilizará. Tanto si se usan para realizar operaciones numéricas, pruebas o para comparar valores, es importante entender estos símbolos y palabras clave. En este capítulo se explican los operadores más importantes según su frecuencia de uso, pero también por su prioridad en relación con los demás.
Al final del capítulo, encontrará una serie de ejercicios para practicar.
Operador de asignación =
Varias veces ha podido ver el operador «igual» =, que permite asignar un valor a una variable.
Cuando se trata de una asignación, el elemento de la izquierda tomará el valor del elemento de la derecha del operador =.
Cuando se trata de una prueba para una condición, el operador se utiliza para comprobar la igualdad, como se verá en la siguiente sección.
Operadores aritméticos
Cuando se trata de realizar cálculos sobre valores numéricos, pensará instintivamente en los cuatro símbolos de operación de su teclado o calculadora (+ - * /), pero estos no son los únicos operadores existentes para trabajar con valores numéricos.
Operadores de base
Empecemos con los cuatro operadores básicos que se utilizan de la misma forma que en las matemáticas. En cada ejemplo se indica el resultado obtenido tras la operación.
Suma +
El símbolo + permite, simplemente, sumar dos valores entre sí.
1 + 1 = 2
Resta -
El símbolo - permite restar dos valores entre sí.
8 - 3 = 5
Multiplicación *
El símbolo «estrella» o «asterisco» * permite multiplicar dos valores entre sí.
25 * 6 = 150
División /
El símbolo «barra» (de división) / o barra oblicua permite dividir dos valores entre sí. Tenga en cuenta que el tipo de datos que divide no afecta al tipo de datos del resultado.
15 / 6 = 2.5
Las operaciones matemáticas siguen las mismas reglas que en la vida real, no hay reglas adicionales.
División entera \
El símbolo «barra invertida» \ se utiliza para devolver la parte entera de una división.
15 \ 4 = 3
Operador módulo mod
La palabra clave Mod, también llamada operador módulo, se utiliza para devolver el resto...
Operadores de comparación
Cuando se trata de comparar dos valores, hay varios operadores disponibles. Cuando realice una comparación, el resultado será un booleano, que le dirá si la comparación es verdadera o falsa. En cada uno de los siguientes casos, el primer ejemplo será verdadero y el segundo, falso.
Estrictamente superior a >
5>3
5>10
Superior o igual a >=
5>=5
5>=6
Estrictamente inferior a <
5<10
8<4
Inferior o igual a <=
5<=10
8<=4
Igual a =
5=5
8=4
Diferente de <>
5<>6
4<>4
Operadores Like e Is
Hay otros dos operadores de comparación. El operador Like se utiliza para las comparaciones de cadena; véase el capítulo Manipular cadenas. El operador Is se utiliza para comparar objetos entre sí.
Operadores de lógica u operadores booleanos
Al realizar comparaciones, es posible que necesite combinaciones de varias operaciones. Los operadores lógicos se utilizan para validar dos valores booleanos.
La sintaxis general de estos operadores es la siguiente:
Valor1 operador Valor2
Esta expresión devuelve un booleano.
A continuación, encontrará una tabla de verdad para cada uno de estos operadores. El valor 1 significa Verdadero, 0 significa Falso.
Operador Y - And
El operador And permite comprobar que dos valores sean verdaderos.
Valor1 |
Valor2 |
Valor1 And Valor2 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
Operador O - Or
El operador Or permite comprobar que al menos uno de los dos valores sea verdadero.
Valor1 |
Valor2 |
Valor1 Or Valor2 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
Operador NO - Not
El operador Not permite invertir el valor de un booleano.
Valor1 |
Not Valor1 |
1 |
0 |
0 |
1 |
Operador O EXCLUSIVO - Xor
El operador Xor permite comprobar que solo uno de los dos valores sea verdadero.
Valor1 |
Valor2 |
Valor1 Xor Valor2 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
Prioridad de los operadores
Cuando se programa una línea con varios operadores, es importante saber en qué orden VBA realiza las operaciones.
Si su expresión tiene paréntesis, las expresiones dentro de los paréntesis se calcularán primero.
Si su expresión tiene operadores aritméticos, estos se procesarán primero, en el siguiente orden: ^ * / \ mod + y, finalmente, -.
Las siguientes líneas dan el mismo resultado para VBA:
'Caso 1
5 * 3 + 1
15 + 1 'la multiplicación tiene prioridad sobre la suma
16
'Caso 2
2 ^ 3 Mod 5 * 2
8 Mod 5 * 2 'la potencia tiene prioridad sobre los otros operadores
8 Mod 10 'La multiplicación tiene prioridad sobre el operador Mod
8
Ejemplo 1: orden de prioridad de los operadores numéricos
A continuación, si su expresión contiene operadores de comparación, se tratan con la misma prioridad y se evaluarán en el orden en que aparecen en la expresión, es decir, de la izquierda hacia la derecha.
Por último, si su expresión contiene operadores lógicos, se procesarán en el siguiente orden: No, luego And, Or y, finalmente, Xor:
'Caso 3
5> 3 And 3<=4
True
'Caso 4
Not True Xor True Or False
'se tratará como si se utilizaran los siguientes paréntesis
(Not...
Ejercicios
Operadores aritméticos
Operaciones de base
Escriba la función Suma, de ámbito público, de tipo entero.
Esta función recibe dos parámetros de tipo numérico entero, llamados A y B.
La función devuelve la suma de los valores A y B.
A continuación, escriba la función Resta, de ámbito público, de tipo entero.
Esta función recibe dos parámetros de tipo entero, llamados A y B.
La función devuelve la diferencia entre los valores A y B.
Cree la macro MostrarSumaYDespuesResta.
En esta macro declare dos variables de tipo entero, denominadas valor1 y valor2, asignándoles los valores 10 y 12 respectivamente.
A continuación, la macro debe mostrar el resultado devuelto por la función Suma, pasándole los valores de valor1 y valor2.
La macro debe mostrar, igualmente, el resultado devuelto por la función Resta, pasándole los valores de valor1 y valor2.
Ejecute la macro MostrarSumaYDespuesResta.
Los valores mostrados serán 22 y -2.
División euclidiana
Escriba el procedimiento Descomponer, de ámbito público.
Este procedimiento toma como parámetros dos valores, de tipo entero, llamados Valor y Divisor.
El procedimiento mostrará el resultado de la división entera de Valor entre Divisor, y luego mostrará el resto de la división entera....