You are on page 1of 30

Introduccin a la Computacin

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.

Editor de Visual Basic (Alt- F11)

Modelo de objeto de Excel


VBA es un lenguaje de programacin
orientado a eventos. Excel, proporciona ms
de 100 clases de objetos.
Por ejemplo, Excel es un objeto llamado
Application y contiene otros objetos, como
por ejemplo los workbooks (libros de
trabajo) y a su vez stos contienen a los
objetos sheets (hojas). A ste orden de los
objetos se le conoce como modelo de
objeto de Excel.
6

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)

Propiedades de los objetos


Una propiedad es una caracterstica del objeto.
Por ejemplo:
sheets(Hoja1).name = Primera
Objeto
sheets Hoja1

Propiedad
name

Mtodos de los objetos


Los objetos disponen de mtodos. Un mtodo es una
accin que se realiza con el objeto.

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:

Estndares: Son funciones proporcionadas por el


mismo lenguaje de programacin por la aplicacin.
En Excel tenemos, por ejemplo, RAIZ, SUMA, MAX, SI,
PROMEDIO, entre otras.
En VBA tenemos, por ejemplo, Ucase, Val, Round,
entre otras.
Definidas por el usuario: son funciones que crea el
programador con el propsito de ejecutar algn clculo
especfico.

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.

NOTA: Las reglas para el paso de parmetros son las


mismas que para los procedimientos.
Ejemplo
Function calcular_perimetro(lado1, lado2, lado3)
calcular_perimetro = lado1 + lado2 + lado3
End Function

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

Sub Nombre ( [lista de argumentos])


[instrucciones]
End Sub
Sub: Palabra reservada que indica el inicio de un procedimiento.
Nombre: Nombre del procedimiento.
Lista de argumentos: Opcional. Un argumento es una informacin
que se pasa al procedimiento desde otro procedimiento o funcin.
Instrucciones: Opcional. Representa instrucciones VBA vlidas.
End Sub: Indica el final de una funcin.

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

La palabra reservada Call es


opcional.
No es necesario colocarla,
algunos programadores
la usan para indicar de manera
explcita que se trata de la
llamada a un procedimiento

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

Funciones matemticas ofrecidas por VBA


Abs(x), valor absoluto de X

Atn(x), arcotangente de X en radianes.


Cos(x),coseno de X.
Exp(x), exponencial de x (ex).
Fix(x), parte entera de X. Si X es negativo devuelve el nmero entero
inmediatamente mayor o igual a X.
Int(x), parte entera de X. Si X es negativo devuelve el nmero entero
inmediatamente menor o igual a X.

Log(x), logaritmo natural de X.


Sqr(x), raiz cuadrada de X.
Sin(x), seno de X.

Tan(x), tangente de X.

23

Funciones matemticas ofrecidas por VBA


Transformacin de funciones trigonomtricas
tan(x) = sen(x)/cos(x)
cot(x) = cos(x)/sen(x)
sec(x) = 1/cos(x)
csc(x) = 1/sen(x)
Transformacin de funciones trigonomtricas inversas
arcsen(x) = arctan
arccos(x) = arctan

(
(

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

Marcela Genero Bocco


Excel con Visual Basic Para Aplicaciones (VBA)
Noviembre 2002

CAIR, Osvaldo.
Metodologa de la programacin.
2a edicin. Mxico: Alfaomega, 2003.

29

Bibliografa

Marcela Genero Bocco


Excel con Visual Basic Para Aplicaciones (VBA)
Noviembre 2002

CAIR, Osvaldo.
Metodologa de la programacin.
2a edicin. Mxico: Alfaomega, 2003.

30

You might also like