Documente Academic
Documente Profesional
Documente Cultură
1.- Índice
Iniciación a visual basic para macros ................................................................. 1
1.- Índice ......................................................................................................... 1
2.- Introducción ............................................................................................... 2
3.- Visual Basic vs Excel................................................................................. 3
4.- El primer programa .................................................................................... 4
5.- Variables y asignación............................................................................... 5
6.- Instrucción condicional .............................................................................. 7
7.- Instrucción iterativas .................................................................................. 9
8.- Arrays y tuplas ......................................................................................... 12
9.- Constantes .............................................................................................. 14
10.- Acciones y funciones ............................................................................. 15
11.- Option Explicit........................................................................................ 17
www.mundoexcel.com 1/1
2.- Introducción
Este manual tiene como objetivo enseñar los fundamentos del lenguaje de
programación visual basic (VBA, Visual Basic for Applications) para macros,
con el fin de que la programación de macros sea lo más ágil posible. Todo
lo que aprenda en este manual le podrá servir para realizar macros en
Microsoft Word, Power Point, Excel, etc
2.1.- Convención
Para hacer más sencilla la lectura de este manual se aplican las siguientes
normas:
www.mundoexcel.com 2/2
3.- Visual Basic vs Excel
Dentro del aplicativo de Microsoft Excel existe la posibilidad de grabar
“Macros”, lo cual resulta útil ya que un mismo proceso se pueden realizar
tantas veces y en el momento que el usuario lo desee. Esto resulta de especial
utilidad para:
www.mundoexcel.com 3/3
4.- El primer programa
Vamos a ver nuestro primer programa
1. public sub ejemplo01()
2. MsgBox “Hola” ‘comentario
3. end sub
El siguiente programa esta compuesto por una acción (sub) de dominio público
(public) que se llama ejemplo01.
En la línea 2 puede ver que hay un comentario; para insertar comentarios debe
poner el símbolo ‘
www.mundoexcel.com 4/4
5.- Variables y asignación
Todo algoritmo razonablemente complejo requiere de la utilización de
variables donde guardar valores. En algunos lenguajes de programación,
como es el caso de visual basic, no se requiere la declaración explícita de las
variables
Veamos ejemplos:
1. dim a as integer ‘variable de tipo entero
2. dim b as long ‘variable de tipo entero largo
3. dim c as single ‘variable de tipo real corto
4. dim d as double ‘variable de tipo real largo
5. dim e as string ‘variable de cadena de caracteres
6. dim f as boolean ‘variable de tipo booleano, los posibles valores son
7. ‘True y False
www.mundoexcel.com 5/5
27. ‘operación con valores booleanos
28. es_correcto = (nota00>8) or (nota01>13) ‘con estos valores dará True
29. end sub
Convenciones:
• No puede declarar una variable cuyo nombre empiece por un número
(declaración no permitida: dim 3edad as long)
• No puede insertar espacios en blanco y caracteres especiales en el
identificador de la variable (declaración no permitida: dim edad persona as
long)
• Hay algunos nombre que no se pueden utilizar porque son palabras del
lenguaje visual basic (declaración no permitida: dim end as string)
• No se pueden declarar dos veces la misma variable en la misma
declaración (declaración no permitida: dim edad as long, edad as long)
www.mundoexcel.com 6/6
6.- Instrucción condicional
En este apartado se explicará la instrucción condicional if, cuya estructura es la
siguiente:
if (condicion) then
instrucciones
elseif (condicion) then ‘<---opcional
instrucciones
else ‘<---opcional
instrucciones
end if
Ejemplo:
1. public sub ejemplo03(edad as long)
2. if edad<0 then
3. MsgBox ”error”
4. MsgBox “La edad no puede ser negativa”
5. elseif edad>=0 and edad<10 then
6. MsgBox ”niño”
7. elseif edad>=10 and edad<20 then
8. MsgBox ”adolescente”
9. elseif edad>=20 and edad<30 then
10. MsgBox ”joven”
11. else
12. MsgBox ”adulto”
13. end if
14. end sub
Otro ejemplo:
1. public sub ejemplo04(valor as long)
2. dim valor1 as long
3. valor1=valor
4. if valor1<0 then
5. valor1 = -1*valor
6. end if
7. MsgBox ”El valor absoluto de “ & valor & “ es “ & valor1
8. end sub
www.mundoexcel.com 7/7
Otro ejemplo:
1. public sub ejemplo05(operacion as string, operador1 as long, operador as
long)
2. dim resul as double
3. dim hubo_error as boolean
4.
5. if operacion =”+” then
6. resul =operador1 + operador2
7. errore=False
8. elseif operacion =”-“ then
9. resul =operador1 - operador2
10. errore=False
11. elseif operacion =”*“ then
12. resul =operador1 * operador2
13. errore=False
14. elseif operacion =”/“ then
15. resul =operador1 / operador2
16. errore=False
17. else
18. errore=True
19. end if
20.
21. if errore then
22. MsgBox “El operador se desconoce”
23. else
24. MsgBox “El resultado de la operación fue ” & resul
25. end if
26. end sub
www.mundoexcel.com 8/8
7.- Instrucción iterativas
Se pueden hacer programas que repitan un conjunto de instrucciones, por
ejemplo:
En esta estructura se puede indicar cada cuánto se van haciendo saltos, por
ejemplo añadiéndole step –2 mostraría por pantalla lo siguiente en el últumo
ejemplo:
Hola1, Hola3, Hola5, Hola7, Hola9
www.mundoexcel.com 9/9
7. wend
8. end sub
Fíjese que en este bucle el valor de la variable disminuye hasta que es valor=-
1; si el número que se introduce es positivo, este bucle tarde o temprano
acabará, pero si el número es menor que –1, por ejemplo –5... este bucle
NUNCA ACABARÁ.
El ejemplo correcto sería:
www.mundoexcel.com 10 / 10
Recuerde: debe realizar alguna operación dentro del bucle while para que la
condición del bucle cambie en alguna iteración y el bucle sea finito.
www.mundoexcel.com 11 / 11
8.- Arrays y tuplas
Probablemente tendrá de trabajar con muchas variables. Para ello existen
varias maneras de agruparlas en estructuras mayores y facilitar la tarea. Con
este objetivo se usan los arrays (vector ó tabla) y las tuplas (record).
Mostremos un ejemplo:
En este ejemplo se han tenido que crear 10 variables para leer las 10 notas,
pero ¿se imagina como quedaría el código si tuviera que leer 100 notas...?
Veamos como hacerlo de otra manera.
www.mundoexcel.com 12 / 12
En un array, todos los elementos son del mismo tipo de variable.
1. type jugador
2. dim nombre as string
3. dim apellido1 as string
4. dim apellido2 as string
5. dim puntuacion as long
6. end type
7.
8. dim jug1 as jugador
9. dim jug2 as jugador
1. jug1.nombre = “Manolo”
2. puntuacion = jug1.puntuacion
Recuerde: se puede crear tanto un array de tuplas....como una tupla con algún
arrays.
www.mundoexcel.com 13 / 13
9.- Constantes
Cuando desee definir un valor que nunca se vaya a modificar, debe definir
una constante. El formato es el siguiente:
Ejemplo:
Const CONST_PI=3.1415
Const PASSWORD=”Carol”
www.mundoexcel.com 14 / 14
10.- Acciones y funciones
Cuando se realizan aplicativos de cierto tamaño, se suelen repetir conjuntos de
instrucciones. Para no tener que repetir este código varias veces se aconseja el
uso de acciones (procedimientos) y funciones. A esta práctica se llama
programación modular.
La diferencia entre una acción y una función es que la función retorna un valor;
por contra la acción no.
Definición de acción:
sub nombre_accion (parámetros)
instrucciones
end sub
Definición de funciones
function nombre_funcion (parámetros) as [tipo de valor que retorna]
instrucciones
[nombre_funcion=....]
end function
Ejemplos:
1. public sub ejemplo14(par1 as long, par2 as long, resul as long)
2. resul=par1 + par2
3. end sub
Fíjese en lo siguiente:
• El ejemplo14 y el ejemplo17 son acciones
• El ejemplo15 y el ejemplo16 son una funciones
www.mundoexcel.com 15 / 15
• En la línea 2 del ejemplo15 se puede ver como la función retorna el valor de
la suma de los dos parámetros
• En el ejemplo16 se ha creado un acción que no posee ningún parámetro
• En la línea 10 del ejemplo17 se llama a una acción con la instrucción
call
• En la línea 12 del ejemplo17 se llama a una función, retornando el valor
de la función sobre la variable resultante
Se pueden crear variables globales que son visibles desde todas las acciones y
funciones con la instrucción global, pero esta técnica se desaconseja por que
resulta muy complicado el mantenimiento y la depuración de errores.
www.mundoexcel.com 16 / 16
11.- Option Explicit
Se aconseja EXPLÍCITAMENTE que se declaren TODAS las variables. Es
muy triste estar validando un mal funcionamiento de un programa y darse
cuenta después de 2 horas que el error es que no se ha declarado la
variable correctamente y que hay 2 variables diferentes con el nombre
“parecido” de importe y impote
Para obligar a visual basic a que se deban declaran las variables se debe
escribir el siguiente código:
option explicit
www.mundoexcel.com 17 / 17