You are on page 1of 8

UNIVERSIDAD CATÓLICA DE SANTA MARÍA

PRÁCTICA

9
COMPUTACIÓN APLICADA

PROCEDIMIENTOS Y FUNCIONES EN VBA

OBJETIVOS

 Entender el uso de procedimientos en VBA.


 Diferenciar los tres tipos de procedimientos en VBA.
 Entender el uso de funciones en VBA.
 Diferenciar una función de un procedimiento en VBA.

RECURSOS

Excel

DURACIÓN DE LA PRÁCTICA

(2) Dos Horas

INGENIERÍA INDUSTRIAL 1
MARCO TEÓRICO

PROCEDIMIENTOS EN VBA
 Un procedimiento en VBA es el nombre genérico para referirnos a un bloque
contenido de código que realiza una tarea.
 En VBA se utilizan 3 tipos de procedimientos: Los procedimientos Sub, las funciones
y las propiedades.
 Cuando en el editor de Visual Basic (VBE), en la barra de menú seleccionamos:
Insertar>Procedimiento, aparece la siguiente caja de dialogo que permite dar un
nombre al procedimiento, seleccionar el tipo de procedimiento y el ámbito del
procedimiento.

INGENIERÍA INDUSTRIAL 2
PROCEDIMIENTOS SUB
 Los procedimientos Sub pueden ser creados de dos formas:

1. Grabando las acciones que se ejecutan cuando se interactúa con la hoja de


cálculo, a este tipo de procedimientos se les llama macros.
2. Introduciendo el código en el editor de Visual Basic (VBE).

 Las instrucciones que integran el Sub se encuentran dentro de un contenedor de


código (Shell). Este contenedor inicia con el comando Sub seguido del nombre del
procedimiento y paréntesis para indicar los parámetros a utilizar, si se requieren.
El contenedor cierra con el comando End Sub.

 La sintaxis es:

Sub Nombre_Procedimiento([ByVal or ByRef]parametro1 [as Type], ([ByVal


or ByRef]parametro2[as Type], ……….)

Codigo del procedimiento

End Sub

 Lo que va entre [ ] es opcional, si no se coloca nada se toman los valores por defecto.

 La diferencia fundamental entre una función y un procedimiento Sub es que las


funciones devuelven un valor, sin embargo, los Sub no.

Ejemplo:

 Vamos a crear un Sub para calcular el volumen de un cilindro, creando un Sub


llamado VOL_CIL.

INGENIERÍA INDUSTRIAL 3
 Vemos que VOL_CIL tiene dos parámetros: r y h, ambas con tipo de doble precisión
(Double).
 Al tratar de correr este sub no sucede nada, para que corra tenemos que llamarlo
desde otro procedimiento y pasar los argumentos a los parámetros.
 Para eso vamos a crear un botón de comando, que, al hacer clic, llame al Sub
VOL_CIL y le suministre los argumentos a los parámetros r y h. Para hacer eso vamos
a la cinta de menú y hacemos clic en DESARROLLADOR y dentro de esta
seleccionaremos: Insertar>ControlesActiveX y allí buscaremos el icono para crear un
botón de comando.

INGENIERÍA INDUSTRIAL 4
 Creamos el botón anclando y arrastrando para crear una cajita. hacemos doble clic
sobre la caja y estos nos lleva al VBE. Aquí introduciremos el código que se ejecutara
al hacer clic en botón.
 El código del botón es el que se muestra a continuación:

Private Sub CommandButton1_Click()


VOL_CIL 2, 4
End Sub
 Al hacer clic, se ejecuta el Sub CommandButton1_Click(), el cual simplemente hace
un llamado al Sub VOL_CIL y le suministra los argumentos a los parámetros r y h. Y
el resultado es la aparición de una caja de mensaje (MsgBox) con el resultado.

FUNCIONES

 A diferencia de los procedimientos Sub, las funciones (Function) solo pueden ser
creadas en el editor de Visual Basic.
 Una función es un bloque de código que realiza una tarea, que involucra por lo
general lectura de datos, cálculos y retorno de resultados. Puede incluir códigos
para toma de decisiones y ciclos repetitivos.

INGENIERÍA INDUSTRIAL 5
 Las instrucciones que integran una función se encuentran dentro de un contenedor
de códigos (Shell). La sintaxis es:

[public][private]Function Nombre(parametro1 [as Type], Parametro2 [as


Type], …….)[as Type]
Código de la función
Nombre=resultado
End Function

 Lo indicado entre [] es opcional. La última línea de código antes del End Function
debe contener el nombre de la función con la asignación del resultado a retornar,
ya sea a la hoja, o a una variable en otro procedimiento.
 Los procedimientos Function creados en el VBE pueden ser utilizados directamente
en la hoja de cálculo, como cualquier otra función de Excel, o también pueden ser
llamadas por otros procedimientos en VBA.
 Vamos a mostrar el código de una función que realiza la misma operación del
procedimiento Sub que vimos en el ejemplo anterior. Vamos a calcular el volumen
de un cilindro, y el código es el que se muestra a continuación:

 Como se observa la última línea de código tiene el nombre de la función al cual se


le asigna el resultado del cálculo, y que luego es mostrado en la hoja de cálculo o
pasado a una variable en otro procedimiento.

INGENIERÍA INDUSTRIAL 6
 En la figura se observa como en la celda C4 se ha introducido la función que hemos
creado, la cual asigna los valores 2 y 4 a los parámetros r y h respectivamente. la
función devuelve directamente un valor en la celda donde es colocada.
 En el siguiente ejemplo vamos a llamar a la función Cilindro_Vol dese una función
llamada Cilindro_Peso.

 La cual también podemos utilizar en la hoja de cálculo o ser llamada desde otro
procedimiento.

INGENIERÍA INDUSTRIAL 7
EJERCICIOS PROPUESTOS

1. Realizar un programa en VBA llamado saludador, donde pida un nombre. Cree un


subproceso que tenga como parámetro este nombre dado, este subproceso
muestra por consola ¡Hola <nombre>!. Por ejemplo, si introducimos Fernando,
aparecerá ¡Hola Fernando!.

2. Crea un programa en VBA que calcule el impuesto de un producto. El valor de


este producto se pasará por teclado y nos mostrará el valor final. El impuesto es
el 21 %. Por ejemplo, si introducimos 100 como valor de producto, el impuesto
es 21 y el valor final es 121 soles.

3. Crea un programa que calcule el área de un triángulo. Haz un subproceso que


calcule esa área y la muestre por consola. El área de un triángulo es base x altura.
Pide por teclado la base y la altura.

4. Crea una función que calcule el factorial de un número. Pide un número por
teclado. Para calcular el factorial, se multiplica los números anteriores hasta
llegar a uno. Por ejemplo, si introducimos un 5, realizara esta operación
5*4*3*2*1=120.

5. Realiza una función que nos indica si un número es múltiplo de otro. Pedimos los
dos números por teclado. Esta función debe devolver un Booleano,
donde true significa que si es múltiplo y false que no lo es. Según este valor, que
muestre por consola si es múltiplo o no.
INGENIERÍA INDUSTRIAL 8

You might also like