Professional Documents
Culture Documents
Captulo 3:
Subprogramas
Programas
Un programa es un conjunto de instrucciones que
sigue la computadora para alcanzar un resultado
especfico.
Un
subprograma
es
una
serie
de
instrucciones que forman una unidad de
programa,
escrita
independientemente
del
programa principal, y asociada al programa principal
mediante un proceso de transferencia de control y
de retorno de control.
Flujo de control
Programa principal
Subprograma
Control se transfiere
al subprograma
Programa principal
requiere el subprograma
Subprograma
se ejecuta
Programa principal
continua
Control se regresa al
programa principal
cuando el subprograma
termina
3
Lenguaje de programacin
VBA (Visual Basic para Aplicaciones)
Una de las ventajas que tiene este lenguaje es que
es ampliamente utilizado en MS Office (e incluso en
aplicaciones de otros fabricantes).
El programa se escribe en un mdulo VBA. En el
caso de MS Excel, estos mdulos se guardan en un
libro de trabajo, pero se editan o visualizan en el
editor de Visual Basic al cual se ingresa con
ALT-F11.
Referencia a objetos
Para referirnos a un objeto que est contenido en otro debemos
especificar la jerarqua. Por ejemplo:
Si deseamos referirnos al libro de trabajo 1, contenido en el
objeto Application (Excel), escribimos:
Application.Workbooks(Libro1.xlsx)
Si quisiramos referirnos a la Hoja1 del Libro1:
Application.Workbooks(Libro1.xlsx).Sheets(Hoja1)
Sin embargo, sta forma es un poco larga de escribir. En muchas
ocasiones no ser necesario indicar toda la referencia:
Sheets(Hoja1) Worksheets(Hoja1)
Propiedad
name
sheets(Hoja2).delete
Objeto
sheets Hoja2
Mtodo
delete
Operaciones
Operadores Aritmticos:
Smbolo
Precedencia o
Prioridad
Potenciacin
Negacin
Multiplicacin
Divisin
Divisin Entera
mod
Adicin
Substraccin
Operacin
Mdulo o Residuo de
Divisin Entera
10
Subprogramas
En VBA, tenemos dos tipos de subprogramas:
1. Procedimientos
Un procedimiento es un conjunto de instrucciones que
ejecuta un proceso sin devolver un valor. Para invocarlo,
es decir, para hacer que se ejecute, basta con escribir su
nombre en el cuerpo de otro procedimiento o en el
programa principal, como si fuera una instruccin simple.
2. Funciones
Una funcin es un subprograma que devuelve un valor. La
funcin se invoca especificando su nombre en una
expresin a evaluar, como si fuera una variable ms.
11
Subprogramas
Podemos distinguir dos tipos de funciones:
12
Funciones
Declaracin
Function Nombre_funcion(arg1, , argN)
[instrucciones]
Nombre_funcion = valor
End Function
Function: Palabra reservada que indica el inicio de una funcin.
Nombre: Nombre de la funcin.
Lista de argumentos: Opcional. Un argumento es una
informacin que se pasa a la funcin desde otra funcin o
procedimiento.
13
Funciones
Instrucciones: Opcional. Representa instrucciones VBA vlidas.
End Function: Indica el final de una funcin.
14
Funciones
Nota: Las funciones no pueden ser ejecutadas
directamente desde el Editor de VBA, para ello es
necesario definir un procedimiento que la llame, y tambin
pueden ser usadas en la Hoja de clculo.
Por ejemplo:
Sub probar_calcular_perimetro()
perimetro = calcular_perimetro(1, 2, 3)
End Sub
15
Funciones
Ejemplo de funcin que permite calcular el rea de un
tringulo haciendo uso de la funcin calcular_perimetro.
Function calcular_area(lado1, lado2, lado3)
s = calcular_perimetro(lado2, lado2, lado3) / 2
aux = s * (s - lado1) * (s - lado2) * (s - lado3)
calcular_area = aux ^ 0.5
End Function
16
Procedimientos
Declaracin
17
Procedimientos
Ejemplo:
Sub Bienvenida()
nombre = InputBox("Ingrese su nombre")
edad = InputBox("Ingrese su edad")
nombre = UCase(nombre)
edad = edad + 5
mensaje = nombre & ", podras terminar la carrera
a los " & edad
MsgBox mensaje
End Sub
18
Procedimientos
NOTA: Se puede llamar a un procedimiento desde otro
procedimiento:
Sub Otro()
[Call] Bienvenida
End Sub
19
Procedimientos - Ejecucin
Ir al explorador de proyectos, seleccionar el mdulo en el
que se encuentra el procedimiento, colocar el cursor en el
procedimiento que desea ejecutar. Existen varias formas de
ejecutar un procedimiento:
1. Presionando la tecla F5
2. Seleccionando la opcin Ejecutar Sub/user form del
men ejecutar.
3. Presionando el cono
de la barra de herramientas.
20
Procedimientos - Ejecucin
Tambin se puede ejecutar desde la hoja de clculo de
Excel.
Para ello vaya al men herramientas, seleccione el
submen Macro y luego el submen Macros. Aparecer
una ventana en la que deber seleccionar el procedimiento
que desea ejecutar:
21
Procedimientos - Ejecucin
22
Tan(x), tangente de X.
23
(
(
x
1 x2
1 x2
)
x
arccot(x) = arctan
(1/x)
arcsec(x) = arctan
arccsc(x) = arctan
x 2 1)
1
x2 1
24
Procedimientos - Parmetros
En la mayora de los casos, un procedimiento actuar sobre
unos datos y as habr que expresarlo, tanto en su
declaracin como en su invocacin (llamada).
En la declaracin, los datos genricos se expresarn
mediante la lista de parmetros formales (
argumentos).
En la invocacin, los datos concretos sobre los que acta
la accin se expresarn mediante la lista de parmetros
reales.
25
Procedimientos - Parmetros
Los parmetros reales de una invocacin (en el momento
de llamar al procedimiento) se casan con los parmetros
formales de su declaracin, de acuerdo a un criterio
posicional. Es decir, el primer parmetro formal
corresponde al primer parmetro real, el segundo
parmetro formal al segundo real, y as sucesivamente.
26
Procedimientos - Parmetros
Paso de parmetros
En algunas ocasiones el valor de los parmetros de un procedimiento
puede sufrir modificaciones. Por ejemplo:
Sub modificar_valores(a, b, c)
a=4
b=5
c=6
procedimiento con 3 parmetros formales, a, b, c
End Sub
Este procedimiento modifica el valor tanto de a como de b y c.
27
Procedimientos - Parmetros
Sub modificando_parametros()
a=1
b=2
A, b y c tienen valores 1,2 y 3 respectivamente
c=3
MsgBox "Los valores de a, b y c son " & a & "," & b & "," & c
modificar_valores a, b, c
MsgBox "Los valores de a, b y c son " & a & "," & b & "," & c
End Sub
A, b y c tienen valores 4, 5 y 6 respectivamente
Nota: En la sentencia modificar_valores a, b, c, que invoca al
procedimiento modificar_valores, tanto a, como b y c, vienen a ser los
parmetros reales (Y no necesariamente deben tener el
mismo nombre que los parmetros formales).
28
Bibliografa
CAIR, Osvaldo.
Metodologa de la programacin.
2a edicin. Mxico: Alfaomega, 2003.
29
Bibliografa
CAIR, Osvaldo.
Metodologa de la programacin.
2a edicin. Mxico: Alfaomega, 2003.
30