Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Las palabras Dim y As forman parte del conjunto de palabras reservadas de Visual Basic.
Variable es el nombre que deseamos dar a la variable, que puede estar formado por letras y
nmeros, sin espacios ni otros smbolos especiales.
Los pos principales para las variables pueden ser:
Boolean con los valores True O False.
Byte Nmeros enteros entre O y 255
Integer Nmeros enteros entre -32768 y 32767.
Long Nmeros enteros entre -2147483648 a 2147483647.
Single Nmeros decimales de precisin simple.
Double Nmeros decimales de precisin doble.
Creamos otra variable de po boolean que nos permita por ejemplo comprobar si una ocurrencia a sucedido o no. Comenzamos por la palabra reservada Dim el nombre de la variable
bandera la palabra reservada As y el po de dato que va a ser Tipo boolean como hemos
indicado.
Podemos crear tantas variables como necesitemos para nuestra aplicacin pero siempre
teniendo en cuenta el po de datos que vamos a guardar en ellas.
Pero no todo son ventajas tambin ene sus inconvenientes. Las variables de este po
enden a necesitar ms espacio que las de otros pos. La recuperacin y asignacin de los
valores que conenen, es ms lenta puesto que es necesario determinar el po del dato antes
de operar sobre l.
Una variable de po Variant tambin puede contener algunos valores especiales, como
Empty, Nothing y Null, que realmente no son pos. Lo que hacen es determinar algunos estados de la variable, como la ausencia de un contenido o la presencia de un contenido nulo.
Podemos comprobar el po del dato contenido en una variable Variant usando la funcin
TypeName.
Vemos un ejemplo con variables de po variant de las que vamos mostrar su valor. En el
editor de visual Basic, tenemos un cdigo,
Despus asignamos un valor a la variable numrica, pasamos dicho valor a la variable Variant y mostramos de nuevo su po. Finalmente, asignamos el contenido de denido, que es
un nmero, a la variable String.
En ese momento Visual Basic efectuar automcamente la conversin de nmero a cadena. En la sentencia siguiente invermos el orden de los operandos, asignando la cadena a
denido. Al mostrar de nuevo su po vemos que ahora es string.
Para ejecutar el cdigo y ver el resultado en la ventana de inmediato pulsamos en el botn
de play de la barra de herramientas. Y podemos ver el valor de la variable variant en cada una
de las deniciones.
de una variable normal, pero en este caso es necesario que detrs del nombre de la variable,
y entre parntesis, se indique el nmero de elementos que va a tener la matriz.
Vamos a ver un ejemplo en el que declaramos una matriz con diez elementos, numerados
del 1 al 10, de po Variant. Ya que no declaramos el po.
Dim Matriz(10) As Variant
Para crear una matriz bidimensional, simplemente en el parntesis introducimos los valores de las columnas y las las.
Dim Bidimensional (10, 5) As Variant
Una vez declarada la matriz, para poder insertar datos en la matriz es necesario indicar la
la y la columna donde queremos insertar el valor, tal y como vemos en el cdigo.
Bidimensional(1, 1) = 1
Bidimensional(1, 2) = 2
Bidimensional(1, 3) = 3
Bidimensional(1, 4) = 4
Bidimensional(1, 5) = 5
Bidimensional(2, 1) = 6
Para leer o modicar los valores es necesario indicar la la y la columna del valor que queremos mostrar, como vemos en el cdigo.
Debug.Print Bidimensional(1, 1)
Debug.Print Bidimensional(1, 2)
Debug.Print Bidimensional(2, 1)
Si ejecutamos el cdigo desde el botn de play y vemos el contenido de la matriz en la
ventana de inmediato.
La Vglobal no est en el interior de ninguna de las dos funciones, es una variable global.
Esto signica que podemos usar esta variable desde cualquier punto del cdigo.
La variable VLocal por el contrario, se ha declarado en el interior de la primera funcin por
lo que no puede ser usada fuera de la funcin.
Si ejecutramos el cdigo, comprobaramos que no tenemos ningn error, aunque tericamente, no podramos ulizar la variable Vlocal desde segundafuncion, pero en realidad que
ocurre? Lo que ocurre es que la declaracin de variables en Visual Basic no es obligatoria por lo
que el entorno cree que cuando usamos a VLocal en segundafuncion realmente lo que estamos
haciendo es crear una nueva variable con el mismo nombre. Esto, puede inducir a errores. En
segundaFuncion podemos creer que estamos accediendo a la variable Vlocal pero lo que en
realidad ocurre es que hemos creado una variable local. Para evitar estos problemas lo mejor
es poner al inicio del mdulo la lnea siguiente: Opon Explicit, esta sentencia indica a Visual
Basic que la declaracin de variables es obligatoria antes de usarla.
Si ahora ejecutamos el modulo, nos aparece un mensaje de error que nos indica que la
variable no ha sido declarada.
7.5. EXPRESIONES
Cuando trabajamos con Excel generalmente los datos que usamos en el interior de una funcin o macro, !enen como nalidad producir algn resultado. Pero para operar con estos datos
necesitamos algn !po de elemento que nos permita trabajar con ellos, estos elementos son
los operandos de expresiones aritm!cas, relacionales y lgicas.
Estos operandos son los mismos que usamos cada vez cada vez que introducimos una frmula en una celda, en la que estamos u!lizando dados de este !po.
En Visual Basic, hay una serie de operadores que nos permiten crear ese !po de expresiones y el resultado se almacena, generalmente, en alguna variable, es decir la variable es como
la celda receptora del resultado de las formulas.
Vamos a ver algunos de los operadores que podemos usar en las expresiones, son operadores aritmcos, relacionales y lgicos, son iguales a los usados en Excel.
+ Suma los dos operandos.
- Resta el segundo operando del primero.
\ Divisin entera del primer operando entre el segundo.
Mod Resto de la divisin entera
* Mulplica los dos operandos
/ Divisin del primer operando entre el segundo
^ Potencia del primer operando, base al segundo que acta como exponente
= Comprueba si los dos operandos son iguales
<> Comprueba si los dos operandos son disntos
< Comprueba si el primer operando es menor que el segundo
<= Comprueba si el primer operando es menor o igual que el segundo
> Comprueba si el primer operando es mayor que el segundo.
>= Comprueba si el primer operando es mayor o igual que el segundo
And Devuelve True si los dos operandos son True.
Or Devuelve True si uno de los dos operandos, o bien ambos, son True.
Xor Devuelve True slo si uno de los dos operandos es True y el otro False.
Not Devuelve True si el operando es False y viceversa
A excepcin del operador Not, que toma un solo operando, todos los dems son binarios.
Esto signica que siempre actan sobre dos operandos, uno que est dispuesto a la izquierda
del operador y otro a la derecha. Dichos operandos pueden ser variables, datos constantes o
incluso otras expresiones.
Vamos a ver un ejemplo, tenemos un cdigo en el que guardamos en una variable usuario
el nombre del usuario de la aplicacin, despus ponemos lo que este en la variable usuario en
la celda acva, en la siguiente instruccin ponemos la fuente en negrita, y por ulmo autoajustamos la columna de la celda acva.
En el ejemplo tenemos una estructura condicional simple, tenemos una macro que comprueba el valor de la celda acva si el valor es mayor de 100000 el contenido de la celda se
pone en negrita.
Para probarla nos situamos en la hoja de Excel seleccionamos una celda vamos a macros
seleccionamos la macros negrita y la ejecutamos y podemos comprobar que como el valor es
mayor que 100000 el contenido de la celda se pone en negrita.
Para probarla nos situamos en la hoja de Excel seleccionamos una celda vamos a macros
seleccionamos la macro cursiva y la ejecutamos y podemos comprobar que como el valor es
menor que 100000 el contenido de la celda se pone en cursiva.
La estructura Select Case se usa cuando queremos evaluar el mismo valor varias veces y
segn este ejecutar una orden diferente. Vamos a verlo con un ejemplo, tenemos una funcin
incenvo que comprueba el valor que se pasa como argumento y segn el rango en el que este
pone una equeta al valor, si es mayor de 10000 es bueno, si es mayor de 50000 es regular y
si es menor es malo.
Para probar la funcin nos situamos en la hoja de Excel seleccionamos una celda vamos a la
pestaa formulas seleccionamos denidas por el usuario y seleccionamos la funcin incenvo
y la ejecutamos seleccionamos el valor que queremos y podemos comprobar que como el valor es mayor que 100000 nos aparece que la venta es buena, si arrastramos la formula vemos
como calcula el po de valor para cada celda.
7.8. BUCLES
Hay ocasiones en las que necesitamos que una o mas instrucciones se ejecuten repedamente para poder realizar una cierta tarea.
Tenemos mtodos diferentes para reper una o ms sentencias: conociendo el nmero de
veces que se debe reper, usando un condicional para saber cundo debe terminar.
El primer mtodo es el bucle por contador, en el que sabemos con antelacin cuantas veces
queremos reper la sentencia, el formato es el siguiente:
La variable usada para controlar las iteraciones del bucle recibe el nombre de contador,
ya que va contando las veces que se repite el bucle. Los valores inicio y n son los lmites que
tomar el contador.
Vemos un ejemplo, tenemos un bucle for que recorre todas las hojas del libro insertando
en ellas en la celda que indiquemos un dato concreto, en este caso el nombre de la empresa
por ejemplo o lo que queramos.
Primero tenemos la macro, despus comenzamos con el bucle for para todas las hojas del
libro desde la hoja uno hasta el nal de las hojas, esto lo conseguimos con Sheets. Count que
nos da el nmero de hojas que ene el libro. Primero seleccionamos el nmero de hoja que
en el primer caso ser la primera, despus escribimos lo que queramos y connuamos a la
siguiente hoja.
Si ejecutamos la macro, y vamos a las hojas de Excel vemos como en la celda A1 de cada
hoja tenemos el nombre de la empresa.
Vamos a ver ahora el bucle por condicin, en este bucle no tenemos por qu conocer de
antemano las veces que se va a ejecutar el bucle, por ejemplo si queremos recorrer todas las
celdas de una columna vamos a tener que hacerlo hasta que encontremos un dato que marque el n, en este caso no sabemos cuantas veces hay que reper el proceso, En estos casos
tenemos los bucles Do While /loop (hacer mientras) se reper mientras la condicin devuelva
True y Do Unl /Loop (hacer hasta) se reper mientras la condicin devuelva false.
La estructura Do Unl /Loop es igual a esta pero como hemos comentado el bucle se repite
mientras la condicin devuelva falso. La sintaxis es similar a la del bucle do while, tenemos el
bucle las sentencias a ejecutar y por lmo el loop para hacer que el bucle conne.