Вы находитесь на странице: 1из 13

TABLA DE CONTENIDO

Contenido
Los datos en VBA ________________________________________________________________________________ 1
Las variables ________________________________________________________________________________________________________1
Declaracin de variables___________________________________________________________________________________________1
Declaracin Implcita _______________________________________________________________________________________________1
Declaracin Explcita ______________________________________________________________________________________________ 2
Tipos de variables _________________________________________________________________________________________________ 3
Datos numricos __________________________________________________________________________________________________ 3

Ejercicios de VBA _________________________________________________________________________________ 6

VBA VISUAL BASIC FOR APLICATION

Los datos en VBA


LAS VARIABLES
A menudo necesitaremos guardar valores temporalmente cuando realicemos clculos con VBA. Por ejemplo,
podemos almacenar los valores de las ventas y gastos totales de un negocio para luego usarlos en un clculo
de margen de ganancia.

Una variable es el elemento del cdigo que empleamos para guardar valores o informacin temporal que
luego usaremos en la ejecucin de un programa. El contenido que se guarda en la variable es la informacin
que queremos manipular y se llama valor de la variable.

DECLARACIN DE VARIABLES
Toda informacin que manejemos requiere un uso de la memoria RAM de la computadora que ejecuta
nuestra aplicacin, por eso es indispensable reservar un lugar de memoria para cada variable antes de
utilizarla. Esta accin se conoce como declaracin, inicializacin o definicin de la variable. Existen dos
maneras de declarar las variables en VBA: implcita o explcita.

DECLARACIN IMPLCITA
En VBA, no es necesario declarar una variable antes de usarla, porque la aplicacin la crear en forma
automtica cuando le asignemos un valor al nombre de dicha variable. Por ejemplo, podemos crear de
manera implcita las siguientes variables:

Pgina 1

VBA VISUAL BASIC FOR APLICATION

Ejemplo:

x = 12
recargo = 20
nombre = Juan Perez

Ejemplo:

DECLARACIN EXPLCITA
Declarar una variable de manera explcita significa que debemos definir los nombres de todas las variables
que vamos a utilizar antes de emplearlas en el cdigo VBA.
Para poder realizar esta declaracin, tenemos que usar la instruccin Dim, seguida del nombre de la
variable. Por ejemplo, si queremos crear la variable nombre, podemos usar la siguiente instruccin: Dim
nombre.
Si necesitamos crear la variable domicilio, tenemos que utilizar la instruccin: Dim domicilio. De esta
manera debemos proceder con cada una de las variables que vayamos a incluir en el cdigo.

Ejemplo:

Pgina 2

VBA VISUAL BASIC FOR APLICATION

TIPOS DE VARIABLES
Las variables pueden almacenar diferentes tipos de datos. El tipo de dato es el que determina la naturaleza
del conjunto de valores que puede tomar una variable. Todos los datos tienen un tipo asociado con ellos. Un
dato puede ser un simple carcter, tal como la letra C o un valor entero como, por ejemplo, 27.
Cuando declaramos una variable, tambin podemos proporcionarle un tipo de dato. Para ello, empleamos
la siguiente instruccin:

Dim nombre_de_variable [As tipo_de_dato]


La clusula As permite definir el tipo de dato o de objeto de la variable que vamos a declarar. Los tipos de
datos definen la clase de informacin que va a almacenar la variable. VBA soporta los tipos de datos que
enumeramos a continuacin:

Datos numricos.

Datos fecha/hora.

Datos de texto.

Datos booleanos.

Datos Variant.

Datos de objeto.

DATOS NUMRICOS
VBA proporciona dos familias de datos numricos: de nmero entero y de coma flotante. Como datos
enteros, tenemos los siguientes tipos.
Byte : Los valores de tipo Byte son los nmeros enteros comprendidos entre 0 y 255. Estos datos se
almacenan en memoria como un byte (8 bits).

Pgina 3

VBA VISUAL BASIC FOR APLICATION

Por ejemplo, si necesitamos declarar la variable edad como Byte, usa mos la siguiente sentencia:

Dim edad As Byte

Integer : Las variables definidas como Integer pueden almacenar nmeros enteros en el rango de valores
de -32768 a 32767. Los enteros se almacenan en memoria como 2 bytes. Por ejemplo, para declarar la
variable cantidad como Integer, usamos la siguiente sentencia:

Dim cantidad As Integer

Long : Las variables definidas como Long pueden almacenar nmeros enteros comprendidos entre 2.147.483.648 y 2.147.483.647. Por ejemplo, para declarar la variable prec io como Long, usamos la siguiente
sentencia:

Dim precio As Long

Long : Las variables definidas como Long pueden almacenar nmeros enteros comprendidos entre 2.147.483.648 y 2.147.483.647. Por ejemplo, para declarar la variable precio como Long, usamos la siguiente
sentencia:

Dim precio As Long

Como da tos de coma flotante tenemos los siguientes tipos.


Single : Las variables definidas como Single pueden almacenar nmeros reales de 32 bits con una precisin
de 7 decimales. Por ejemplo, para declarar la variable masa como Single, usamos la siguiente sentencia:

Dim masa As Single

Pgina 4

VBA VISUAL BASIC FOR APLICATION

Double : Las variables definidas como Double pueden almacenar nmeros reales de 64 bits con una precisin
de 16 decimales que van de -1.79769313486231E308 a -4,94065645841247E-324 para valores negativos y de
4,94065645841247E-324 a 1,79769313486232E308 para valores positivos. Por ejemplo, si queremos una
variable llamada distancia que nos permita almacenar la distancia entre la tierra y el sol, usamos la siguiente
sentencia:

Dim distancia As Long


Currency : Las variables definidas como Currency pueden almacenar nmeros reales que van de 922.337.203.685.477,5808 a 922.337.203.685.477,5807. Este tipo nos permite manejar valores con una
precisin de 15 dgitos a la izquierda del punto decimal y 4 dgitos a la derecha. Esta clase de datos la usamos
para realizar clculos de tipo monetario, donde necesitamos evitar errores de redondeo.
Por :

ejemplo, si queremos declarar la variable precio como Currency, tenemos que usar la siguiente

sentencia:

Dim precio As Currency


Datos fecha/hora (Date) : El tipo de dato Date lo empleamos para almacenar fechas y horas como un
nmero real. Por ejemplo, para declarar la variable envasado como Date, usamos la siguiente sentencia:

Dim envasado As Date


Los valores de fecha u hora se deben incluir entre dos signos #, como podemos ver en el siguiente
ejemplo:
envasado = #27/12/14#
hora= #10:20:00 AM#

Pgina 5

VBA VISUAL BASIC FOR APLICATION

Ejercicios de VBA
Una vez visto todo lo realizado previamente, se va a pasar a describir estos nuevos ejemplos. En
ellos, vamos a mostrar cmo hacer dos programas, el primero para saber si un nmero es primo,
y el segundo, para obtener listas de nmeros primos.
Para esto, en el primer programa, mostraremos qu funciones se deben utilizar para declarar
mens de trabajo, y cmo trabajar con ellas, adems de cmo llamar a otras funciones sin utilizar
la funcin que se haba visto previamente para este propsito (funcin call). En el segundo
programa, veremos de qu forma se podrn declarar listas de nmeros primos, en un nmero
indicado previamente por nosotros mismos.
Vamos a ver ahora qu es lo que deberemos hacer para poder declarar y utilizar mens de
trabajo, aplicndolo de manera prctica para poder declarar si un nmero dado al programa es
primo o no.

Como se puede ver en la pantalla anterior del Editor de Visual Basic, el programa previamente
descrito se ha dividido en dos partes. En la parte que vemos aqu (declarada a partir del botn)
mediante la funcin InputBox, se declarar un men que se ver en la pgina de la Hoja de
Clculo del Microsoft Excel, presentando el texto DIME UN NUMERO, identificado con la
variable numero definida como string. Esta cadena (que recibe el nmero que se introducira
desde teclado) mediante la funcin Val, registrar el valor numrico deseado que se pasara a la
otra funcin (la que calculara si dicho nmero es primo o no).
Esto tambin se podra haber conseguido de una manera un poco ms simple, declarando
nicamente valor como entero y guardando el nmero introducido en la InputBox directamente
como entero como se puede ver en la siguiente captura:

Pgina 6

VBA VISUAL BASIC FOR APLICATION

Una vez hecho esto, dentro de una condicin if , y utilizando la funcin MsgBox (esta funcin, al
igual que la previamente definida InputBox, tiene como misin el mostrar en pantalla un mensaje
en forma de men de Windows, pero ahora presentando un resultado determinado y definido
desde programa) se mostrara un mensaje sobre la Hoja de Clculo, diciendo si el nmero
previamente introducido es primo o no.
Tal como se ha visto previamente, tomando el valor de la variable valor se llama a la funcin
esprimo (x), donde la variable x equivale al valor enviado valor. As, definiendo esta funcin como
Boolean, la cual dara como resultado una respuesta verdadera o falsa (true o f alse), se entrara
en un bucle Do W hile (que utiliza como condiciones que el nmero introducido es inicialmente
primo, para entrar en el bucle, y que el ltimo nmero por el que se dividir el introducido, para
comprobar si es primo o no, deber ser menor o igual a la raz cuadrada del introducido). En este
bucle, dentro se pondra una condicin if , en la que indica que para que un nmero no sea
primo, el resto de dividirlo por otro menor que l debe ser cero.

Como se puede comprobar, al trabajar con variables Booleanas, se devuelve o recibe un True o
un False, que en funcin de la definicin de la condicin if del siguiente programa (el definido
por el botn), se dar como resultado lo correspondiente al si (if ) o al sino (else).
Ahora se ve cmo quedara en la pantalla de la hoja de Excel lo expuesto previamente. Se ve, en
la pgina siguiente, como al hacer clic sobre el botn, aparecera el men pidiendo un nmero, y
acto seguido se dira si ste es primo o no.

Pgina 7

VBA VISUAL BASIC FOR APLICATION

Ahora se van a definir los dos programas necesarios para obtener un nmero determinado de
nmeros primos, siguiendo el mismo esquema previamente definido. Primero se ve cmo se
define con la funcin InputBox, un nuevo men en el que se pide el nmero de nmeros primos
deseado. Adems, se incluye una lnea de cdigo para poder borrar el listado previo de nmeros
primos cada vez que se haga clic sobre el botn (para que salga un nuevo men).

Pgina 8

VBA VISUAL BASIC FOR APLICATION

Esta llamada mediante la funcin Call, se hace a una macro grabada mientras se seleccionaba
toda la columna A y se borraba su contenido, como se puede ver.

Aqu se puede observar el segundo programa, llamado por el primero, y pasndole el nmero de
nmeros primos a generar (tamao de la lista) empezando por el 2.

Aqu se ve como una vez se recibe la informacin de la otra funcin, se definen dos contadores
para controlar los dos bucles. El primero controlara la acumulacin de nmeros primos hasta la
cantidad indicada (x), y a continuacin, al igual que antes, definiendo la variable primo como
booleana, se entra al segundo bucle (encargado del clculo de los primos) suponiendo que la
primera entrada es un nmero primo (2 es primo) y que adems el nmero por el que se divida
cada nmero para comprobar que sea primo, deber ser inferior a la raz cuadrada de dicho
nmero.
Finalmente, con una condicin, se iran acumulando en la columna los diferentes nmeros
primos encontrados hasta llegar a la cantidad deseada.
Aqu se ver ahora el resultado deseado.

Pgina 9

VBA VISUAL BASIC FOR APLICATION

Pgina 10

VBA VISUAL BASIC FOR APLICATION

Actividad 03
TEST DE EVALUACIN
1.

Qu es una variable?

2.

Qu son los tipos de datos?

3.

Qu es una variable explicita e implcita?

EJERCICIOS PRCTICOS
Empleando el mismo ejemplo de la hoja Nro. 8 y 9 (Macro para imprimir nmeros primos), deber incluir la
impresin de los colores por cada nmero primo impreso en las celdas de Excel.
Nota: La impresin de colores corresponde al ejemplo de la serie de Fibonacci

Escribir aqu el cdigo

Pgina 11

Вам также может понравиться