Está en la página 1de 31

PONTIFICIA UNIVERSIDAD CATLICA DEL PER

ESTUDIOS GENERALES CIENCIAS






INTRODUCCIN A LA COMPUTACIN
CUARTO LABORATORIO
DESARROLLO DE PROGRAMAS II













Coordinadores del Laboratorio 2013 2








2013 2


INF117 Introduccin a la Computacin Desarrollo de Programas II
2
TABLA DE CONTENIDO
1. DEPURACIN DE SUBPROGRAMAS EN VBA ................................................................................ 4
1.1. HERRAMIENTAS U OPCIONES DE DEPURACIN DE VBA .................................................................... 4
2. DATOS ...................................................................................................................................................... 8
2.1. CONCEPTO ........................................................................................................................................ 8
2.2. TIPOS DE DATOS ................................................................................................................................ 8
2.3. TIPOS DE OPERACIONES .................................................................................................................... 9
2.3.1. Operaciones aritmticas ....................................................................................................... 9
2.3.2. Operaciones lgicas ............................................................................................................. 9
2.3.3. Operaciones de concatenacin ............................................................................................. 9
2.3.4. Operaciones de comparacin ............................................................................................... 9
3. VARIABLES Y CONSTANTES ........................................................................................................... 10
3.1. VARIABLES ..................................................................................................................................... 10
3.1.1. Concepto ............................................................................................................................. 10
3.1.2. Reglas para nombrar una variable .................................................................................... 10
3.1.3. Declaracin de variables .................................................................................................... 10
3.1.4. Operacin asignacin ......................................................................................................... 11
3.2. CONSTANTES .................................................................................................................................. 11
3.2.1. Concepto ............................................................................................................................. 11
3.2.2. Declaracin de constantes .................................................................................................. 11
3.2.3. Constantes propias de VBA ................................................................................................ 12
3.3. MBITO DE LAS VARIABLES Y CONSTANTES ................................................................................... 13
3.3.1. mbito local ........................................................................................................................ 13
3.3.2. Global a nivel mdulo ........................................................................................................ 13
3.4. ERRORES COMUNES EN LA DECLARACIN Y ASIGNACIN DE LAS VARIABLES. ............................... 14
4. EXPRESIONES ...................................................................................................................................... 14
4.1. EXPRESIONES ARITMTICAS ............................................................................................................ 15
4.2. EXPRESIONES LGICAS ................................................................................................................... 15
4.3. CONCATENACIN DE DATOS STRING .............................................................................................. 15
4.4. CONVERSIONES ENTRE TIPOS DE DATO ........................................................................................... 15
5. FUNCIONES USADAS PARA EL MANEJO DE CADENAS DE CARACTERES (STRING) .... 17
6. SUBPROGRAMAS CON PARMETROS ......................................................................................... 19
6.1. DECLARACIN DE SUBPROGRAMAS ................................................................................................ 19
6.2. PASO DE PARMETROS EN SUBPROGRAMAS .................................................................................... 21
6.2.1. Parmetro por valor ........................................................................................................... 21
6.2.2. Parmetro por referencia ................................................................................................... 21
6.3. DECLARACIN DE PARMETROS POR VALOR Y POR REFERENCIA ................................................... 21
6.3.1. Parmetro por valor: .......................................................................................................... 21
6.3.2. Parmetro por referencia ................................................................................................... 21
7. EJERCICIOS DESARROLLADOS ..................................................................................................... 23
7.1. CLCULO DE LA VENTA DE UN PRODUCTO ...................................................................................... 23
7.1.1. Definicin ........................................................................................................................... 23
7.1.2. Anlisis ............................................................................................................................... 23
7.1.3. Implementacin (Codificacin) .......................................................................................... 23
7.2. COSTO DE PREPARACIN DE UNA PARRILLA ................................................................................... 24
7.2.1. Definicin ........................................................................................................................... 25
7.2.2. Implementacin (Codificacin) .......................................................................................... 25
7.2.3. Resultado ............................................................................................................................ 25
7.3. CLCULO DE LOS VOLMENES PARCIALES Y TOTAL DEL LPIZ ...................................................... 26
7.3.1. Definicin ........................................................................................................................... 26
7.3.2. Implementacin (Codificacin) .......................................................................................... 26
7.3.3. Resultado ............................................................................................................................ 27
INF117 Introduccin a la Computacin Desarrollo de Programas II
3
7.4. CDIGO DE VERIFICACIN (MODIFICADO DE LABORATORIO #4 20121) ...................................... 27
7.4.1. Codificacin ........................................................................................................................ 28
8. EJERCICIOS PROPUESTOS .............................................................................................................. 30
8.1. SISTEMA MONETARIO ...................................................................................................................... 30
8.2. GANANCIA DE UN EVENTO (MODIFICADO DE LABORATORIO #4 20121) ...................................... 30
9. BIBLIOGRAFA .................................................................................................................................... 31
10. ACTUALIZACIN: .......................................................................................................................... 31

INF117 Introduccin a la Computacin Desarrollo de Programas II
4
1. Depuraci n de subprogramas en VBA
Cuando ejecutamos un subprograma en VBA, las nicas veces en las cuales el subprograma se detiene
temporalmente es cuando solicita datos (InputBox) o muestra un mensaje (MsgBox). Si al ejecutar nuestros
subprogramas estos generan datos de salida no esperados, entonces tenemos que revisar las instrucciones y
encontrar en qu instruccin o instrucciones las variables son procesadas de manera incorrecta. La forma ms
sencilla de hacerlo es a travs de la depuracin, la cual permite hacer un seguimiento paso a paso de las
instrucciones y de las variables involucradas del subprograma analizando su comportamiento.

VBA brinda un conjunto de herramientas de depuracin, las cuales permiten ejecutar el subprograma avanzando
sentencia por sentencia, agregando inspecciones a variables o expresiones, alternando puntos de interrupcin,
entre otros.

A continuacin vamos a ver cmo se emplean cada una de las herramientas de depuracin que ofrece VBA. Para
ello, se desarrollar un ejemplo (ver Figura 1) en el cual se evalan dos criterios ledos desde una hoja de trabajo
Excel y se toma una decisin.





Figura 1: Ejemplo a depurar

1.1. Herramientas u opciones de depuracin de VBA
Entre de las herramientas de depuracin ms importantes tenemos:
Agregar inspeccin
Paso a paso por instrucciones
Paso a paso por procedimientos
Alternar punto de interrupcin

Agregar inspeccin
La depuracin permite visualizar qu valores tienen ciertas variables en un momento dado durante la ejecucin de
un subprograma; es decir, permite inspeccionar cmo cambian una o ms variables. Para poder inspeccionar las
variables, se debe indicar al VBE qu variables se van a inspeccionar.

En nuestro ejemplo, vamos a inspeccionar las variables criterio1 y criterio2 del subprograma evaluar_criterios
y la variable decision del subprograma toma_decision. Para ello ejecute los siguientes pasos:

a. Seleccione la variable criterio1 del subprograma evaluar_criterios.
b. Presione el botn derecho del ratn.
c. Aparecer un men contextual. Seleccione la opcin Agregar inspeccin y se mostrar la siguiente
ventana:



Depuracin
INF117 Introduccin a la Computacin Desarrollo de Programas II
5


d. Presione el botn Aceptar y aparecer la ventana de Inspecciones.



Como puede notar, debido a que an no se ejecuta el subprograma, la variable agregada no tiene ningn
valor.

e. Para terminar, agregue las otras variables. La ventana de Inspecciones debe mostrarse as:





Paso a paso por instrucciones
Esta herramienta permite recorrer el subprograma de manera secuencial, ejecutando paso a paso cada una de las
instrucciones que forman parte de dicho subprograma. De este modo, si dentro del subprograma existen
invocaciones a otro subprograma, el control de ejecucin entonces se pasar a ese subprograma para ejecutar
paso a paso sus instrucciones y luego retornar al subprograma inicial.

Para utilizar esta herramienta ejecute los siguientes pasos:
a. Coloque el cursor dentro del subprograma principal.
b. Luego presione la tecla [F8] y se resaltar la lnea del subprograma que se est depurando.
Ventana de Inspecciones
INF117 Introduccin a la Computacin Desarrollo de Programas II
6
c. Para avanzar paso a paso entre las instrucciones, vuelva a presionar la tecla [F8].

Para nuestro ejemplo, el subprograma principal es el procedimiento evaluar_criterios. Para ello, coloque el
cursor, por ejemplo, sobre la instruccin criterio2 = Range("A2"), presione la tecla [F8] y se mostrar lo
siguiente:



Luego, presione nuevamente la tecla [F8] y se resaltar la siguiente instruccin, es decir, criterio1 =
Range("A1"). Siga avanzando presionando la tecla [F8] hasta llegar a la instruccin decision =
toma_decision(criterio1, criterio2). Debido a que se est depurando paso a paso por instrucciones, luego de
presionar la tecla F8, se pasar al siguiente subprograma, es decir, a la funcin toma_decision tal como se
muestra a continuacin:



Siga presionado la tecla [F8] hasta llegar al final del procedimiento toma_decision. Podr comprobar que luego
de la ltima instruccin de dicho procedimiento el control de la ejecucin retorna al subprograma
evaluar_criterios.

Paso a paso por procedimientos
A diferencia de la herramienta anterior, esta inspeccin permite no ingresar a cada una de las instrucciones de un
subprograma invocado por otro durante la depuracin. El hecho de no ingresar a un subprograma no significa que
no se ejecuta dicho subprograma, sino que se evita depurar paso a paso las instrucciones de dicho subprograma.

En el ejemplo anterior, vuelva a depurar presionando la tecla [F8] hasta llegar a la instruccin decisin =
toma_decisin(criterio1, criterio2). En este caso, vamos a depurar paso a paso por este procedimiento
(funcin). Para ello, presione a la vez las teclas [Shift] (Maysculas) y [F8]. Notar que no se resalta la funcin
toma _decision, sino que se resalta la siguiente instruccin del subprograma evalua_criterios; es decir,
Range("A3") = decision.

Alternar punto de interrupcin
Si usted desea que la depuracin se realice en algunos puntos especficos de sus subprogramas; es decir, a travs
de ciertas interrupciones, puede colocar paradas o puntos de interrupcin dentro de estos subprogramas. Para
agregar estas interrupciones ejecute los siguientes pasos:
a. Coloque el cursor en la lnea de la instruccin a interrumpir y presione la tecla [F9].
b. Para quitar la interrupcin de esta lnea, nuevamente presione la tecla [F9].

INF117 Introduccin a la Computacin Desarrollo de Programas II
7
Tambin se puede agregar o quitar interrupciones presionando el botn izquierdo del ratn sobre la columna del
borde izquierdo de la ventana de cdigo a la altura de lnea de la instruccin donde se desea interrumpir.

En nuestro ejemplo, vamos a agregar 2 interrupciones: una en la instruccin criterio2 = Range("A2") del
programa principal evaluar_criterios y otra en la instruccin decision = (criterio1 = (criterio2 + 5)) Or
(criterio1 > (criterio2 - 2)) de la funcin toma_decision. Coloque el cursor sobre cada una de estas
instrucciones y presione la tecla [F9]. Se mostrar lo siguiente:





De esta manera, si usted ejecuta el subprograma utilizando la tecla [F5] (o botn Continuar), la ejecucin se
detendr en la primera interrupcin. Luego, si presiona nuevamente la tecla [F5], se ejecutar hasta la siguiente
interrupcin. Tambin es posible depurar paso a paso (por instrucciones o por procedimientos) a partir de una
interrupcin.

Recuerde que, para terminar cualquier tipo de depuracin, puede terminar la ejecucin presionando el botn
Restablecer o presionar la tecla [F5] (o el botn Continuar).








Botn CONTINUAR Botn RESTABLECER
INF117 Introduccin a la Computacin Desarrollo de Programas II
8
2. Datos
El propsito principal de VBA es manipular y transformar datos, lo que son almacenados en estructuras llamadas
variables y constantes. Las variables pueden contener los datos representados por un tipo de dato establecido.
Algunos datos pueden residir en objetos tales como rangos de hojas de clculo.

En esta seccin se har un pequea introduccin al concepto de Dato y en la siguiente se tratarn las Variables y
Constantes.
2.1. Concepto
Un dato es un nmero, una letra, una fecha, etc. que la computadora procesa para transformarlo en informacin
significativa. Algunos ejemplos de datos son:

La direccin de la Universidad
El precio del men en la cafetera
Eres Mayor de Edad?
Tienes la boleta sin pagar?
IGV
Tipo de cambio del dlar

2.2. Tipos de datos
Cada dato posee un tipo especfico. Cuando hablamos de tipos de datos nos referimos a la manera en la que se
almacenan los datos en la memoria de la computadora. Por ejemplo: nmeros enteros, nmeros reales, texto, etc.

VBA puede darse cuenta, automticamente, del tipo de dato a almacenar, pero esto implica una demora en el
tiempo de ejecucin de su programa y un uso ineficiente de la memoria. Tal vez esto no sea significativo para
aplicaciones pequeas, pero s para las grandes y complejas.

Algunos de los tipos de dato ms comunes en VBA son:

Tipos de Dato en VBA
Tipo de dato
Bytes que ocupa en
memoria
Valor Mnimo Valor Mximo
Lgicos
Boolean 2 Admite los valores: True o False
Numricos
Byte (naturales) 1 0 255
Integer (enteros) 2 -32,768 32,767
Long (entero
largo)
4 -2,147,483,648 2,147,483,647
Single (real,
precisin simple)
4 -3.402823E38 (*)
1.401298E-45 (*)
-1.401298E-45 (*)
3.402823E38 (*)
Double (real,
precisin doble)
8 -1.79769313486231E308
4.94065645841247E-324
-4.94065645841247E-324
1.79769313486232E308
Nota: Los rangos estn escritos en notacin cientfica
Texto.
String (longitud
fija)
1 byte por caracter Almacena un texto de longitud fija
1 hasta aproximadamente 65,400
String (longitud
variable)
1 byte por caracter Almacena un texto de longitud variable.
0 hasta aproximadamente 2 billones
Otros
Date 8 1/1/100 al 31/12/9999
Object 4 Cualquier referencia a un Objeto definido.
Variant Variable Cualquier tipo de dato.



INF117 Introduccin a la Computacin Desarrollo de Programas II
9
2.3. Tipos de operaciones
En VBA, segn el tipo de dato que se tenga, se pueden realizar operaciones aritmticas, lgicas y de comparacin.

Tipo de
Operacin
Tipos de Dato utilizados
Aritmtica Byte, Integer, Long, Single, Double
Lgica Boolean
Concatenacin String

2.3.1. Operaciones aritmticas
Operador Operacin Ejemplo
+ Adicin 18 + 7 = 25
- Substraccin 18 - 7 = 11
* Multiplicacin 18 * 7 = 126
\ Obtener la parte entera de una divisin 18 \ 7 = 2
/ Divisin 18 / 7 = 2.571429
^ Potencia 5 ^ 2 = 25
Mod Obtener el residuo de una divisin 18 mod 7= 4

2.3.2. Operaciones lgicas
Operador Operacin Ejemplo
And Y (Conjuncin) (5 < 2) and (5 < 2) = True
Or O (Disyuncin) (5 >=2) or (5<2) = True
Not No (Negacin) not (5 <> 2) = False

2.3.3. Operaciones de concatenacin
Operador Operacin Ejemplo
& Concatenacin de cadenas de
caracteres
rosa & mendez
+ ( * ) Concatenacin de cadenas de
caracteres
rosa + mendez
* Vase el mismo operador para tipo de datos numricos.

2.3.4. Operaciones de comparacin
Operador Operacin Ejemplo
< Menor 5 < 2 (False)
<= Menor o igual 5 <= 2 (False)
> Mayor 5 > 2 (True)
>= Mayor o igual 5 >= 2 (True)
<> Distinto 5 <> 2 (True)
= Igual 5 = 2 (False)

INF117 Introduccin a la Computacin Desarrollo de Programas II
10
3. Vari abl es y Constantes
3.1. Variables
3.1.1. Concepto
Cuando un subprograma solicita el ingreso de un dato, ste debe ser almacenado temporalmente en algn espacio
de la memoria de su computadora. Una variable es el nombre que se le da al espacio de memoria en el que se
almacena el valor de un dato.

VBA da bastante flexibilidad para nombrar una variable; sin embargo, el nombre debe ser bastante descriptivo para
facilitar el trabajo de programacin y evitar confusiones. Algunos ejemplos de variable pueden ser:
Direccin_universidad, precio_menu, nombre_alumno, mayorDeEdad, boletasSinPagar, igv, tipo_de_cambio, x,
precio, edad, numeroEstacionamiento, etc.

3.1.2. Reglas para nombrar una variable
a. Puede usar letras, nmeros y algunos caracteres especiales, pero EL PRIMER CARACTER siempre debe ser
una LETRA.
b. No puede usar espacios en blanco o puntos.
c. VBA no distingue entre maysculas y minsculas. Es decir, si tiene una variable nombre es lo mismo que la
escriba Nombre, NOMBRE, NomBre.
d. No puede usar los siguientes caracteres: #, $, %, &, !
e. Los nombres de las variables pueden tener como mximo 254 caracteres.
f. Tenga cuidado de no usar alguna palabra reservada de VBA como nombre de variable. Las palabras reservadas
son palabras propias de VBA, tales como Sub, Function, los nombres de las funciones VBA (Inputbox,
Msgbox, Srq, etc), With, For, Next, entre otras. No se preocupe si no conoce todas las palabras
reservadas con las que cuenta VBA, si en algn momento intenta usar una de estas obtendr un error al
momento de tratar de ejecutar su programa.

Para hacer un poco ms descriptivos los nombres de las variables, los programadores a menudo combinan
maysculas y minsculas o el signo subrayado cuando necesitan usar un espacio en blanco. Por ejemplo:
tasa_interes, nombre_alumno, primerSumando, edad_alumno.

3.1.3. Declaracin de variables
Cada variable que se usa en un subprograma corresponde a un tipo de dato especfico. Si usted no declara el tipo
de dato al que corresponde dicha variable, VBA utilizar un tipo de dato por defecto: variant. Los datos
almacenados como tipo de dato variant actan como un camalen; es decir, de acuerdo al tipo de operacin que
realice con el dato, ste cambiar de tipo de dato. Por ejemplo:

Si la variable es del tipo de dato variant y contiene un texto que parece un nmero (como 122), usted puede
usar esta variable para realizar modificaciones al texto 122 o realizar clculos numricos.

Por ello, antes de usar variables en un subprograma, siempre deber declararlas; es decir, indicar a qu
tipo de dato corresponde cada una. Esto har que el programa se ejecute en menor tiempo y administre la
memoria de una manera ms adecuada.

El tipo de dato de una variable est estrechamente relacionado con el valor que almacena dicha variable. Por
ejemplo, no tendra sentido declarar una variable DNI_persona como un tipo Boolean ya que el DNI es un
nmero de 8 dgitos y la variable DNI_persona almacena dichos valores. Tampoco podran usarse los tipos Byte e
Integer, debido a que el rango de valores que pueden guardar dichos tipos (Ver tabla Tipos de Datos en VBA) no
son los adecuados. Pero s podramos usar los tipos Long o String.

Sintaxis
Para declarar una variable en VBA se usa la palabra reservada Dim seguida de la lista de variables, cada cual con
su correspondiente tipo de dato, separadas por comas. El tipo de dato de una variable se indica con la palabra
reservada As.


INF117 Introduccin a la Computacin Desarrollo de Programas II
11
Dim variable1 As tipo_dato1, variable2 As tipo_dato2, , variableN As tipo_datoN

Por ejemplo:
Dim precio_menu As Double, tipo_de_cambio As Double Declaracin de las variables precio_menu y
tipo_de_cambio, ambas tipo Double.
Dim direccin_universidad As String, Declaracin de la variable direccion_universidad como tipo String.

3.1.4. Operacin asignacin
Las variables tambin se usan cuando se requiere almacenar un valor. A esta operacin le llamamos asignacin.
Para asignar un valor a una variable se usa el operador signo igual ( = ). La variable va al lado izquierdo del signo
igual y el valor que toma la variable va al lado derecho. Por ejemplo:

tasa_interes = 0.075 Se lee: la variable tasa_interes toma el valor 0.075
tipo_de_cambio = 3.14 Se lee: la variable tipo_de_cambio toma el valor de 3.14
precio = 3.5 Se lee: la variable precio toma el valor de 3.5

Tambin se podra tener: z = z +1. Esta expresin podra causarle cierta confusin.

Cmo z puede ser igual a z+1? Esta expresin no dice que z sea igual a z+1, recuerde que no est
comparando valores, sino asignando. Lo que expresa es que z TOMA EL VALOR de z+1. Por ejemplo:

Si inicialmente z = 4, entonces esta expresin lo que hace es aumentar en 1 el valor de z (4) y luego otorgar se
resultado (5) a z.

Recuerde:

3.2. Constantes
3.2.1. Concepto
El valor de una variable puede cambiar mientras se ejecuta un subprograma, de all su nombre variable. En algunas
ocasiones se necesita hacer referencia a un valor que nunca cambia, una constante. Una constante es un objeto
cuyo valor permanece fijo, invariable. Si se intenta cambiar el valor de una constante en un procedimiento o
funcin, se producir un error.

3.2.2. Declaracin de constantes
Para declarar una constante en VBA se usa la palabra reservada Const seguida del nombre de la constante, de
manera opcional el tipo de dato, luego el signo igual y por ltimo el valor de la constante.

Sintaxis


Const nombre_constante [As tipo_dato] = valor


Por ejemplo:

Const IGV = 0.19
Const tipo_de_cambio = 3.12
Const boletasinPagar As String = Sin Pagar
Const Maximo = 100

Primero se evala el lado derecho de la expresin y luego el valor final es asignado a la variable de la
izquierda.
En este tipo de expresiones, el smbolo = NO se usa como smbolo de IGUALDAD, sino como
operador de ASIGNACIN.
INF117 Introduccin a la Computacin Desarrollo de Programas II
12
Si no declara explcitamente el tipo de constante (con As tipo), VBA le asignar a la constante el tipo de datos ms
apropiado para la expresin dada.

3.2.3. Constantes propias de VBA
VBA tienen predefinidas algunas constantes que pueden ser usadas sin necesidad de ser declaradas. Para saber
cules son acceda a la opcin Ayuda y busque la palabra constantes de Visual Basic y le parecer la siguiente
pantalla:

Por ejemplo:
Recordemos la sintaxis de Msgbox: MsgBox(prompt[, buttons][, title][, helpfile, context])
El argumento buttons usa algunas constantes, tiene estos valores:

Constante Valor Descripcin
VbOKOnly 0 Muestra solamente el botn Aceptar.
VbOKCancel 1 Muestra los botones Aceptar y Cancelar.
VbAbortRetryIgnore 2 Muestra los botones Anular, Reintentar e Ignorar.
VbYesNoCancel 3 Muestra los botones S, No y Cancelar.
VbYesNo 4 Muestra los botones S y No.
VbRetryCancel 5 Muestra los botones Reintentar y Cancelar.
VbCritical 16 Muestra el icono de mensaje crtico.
VbQuestion 32 Muestra el icono de pregunta de advertencia.
VbExclamation 48 Muestra el icono de mensaje de advertencia.
VbInformation 64 Muestra el icono de mensaje de informacin.

Si desea obtener ms informacin al respecto puede encontrarla en la ayuda de Microsoft VB.

INF117 Introduccin a la Computacin Desarrollo de Programas II
13
3.3. mbito de las variables y constantes
El mbito o alcance de una variable o constante se refiere a la visibilidad y disponibilidad de la variable o constante
en partes especficas del programa. Las variables o constantes pueden tener alcance global o local.

3.3.1. mbito local
Una variable local slo puede usarse dentro del subprograma en el que fue declarada. Por ejemplo:

Sub mi_procedimiento()
Dim edad as integer
Instrucciones del procedimiento
End Sub

En este ejemplo edad es una variable local, que puede ser usada slo en el procedimiento mi_procedimiento. Fuera
del mismo esta variable deja de existir, por lo que intentar acceder a ella ser un error.


3.3.2. Global a nivel mdulo
Una constante global a nivel mdulo se declara en un mdulo antes de cualquier subprograma. Y puede ser
usada en cualquier subprograma del mdulo donde fue declarada. Por ejemplo:




Ejemplos de uso de variables

La variable monto es de tipo Single y se usa en el siguiente ejemplo del mdulo Mdulo1:


Qu ocurre si le asignamos el valor cadena vaca a monto? Al ejecutar nuestro procedimiento
CalcularMontoVenta nos saldra el siguiente error:

Este error indica que No coinciden los tipos. Esto se debe a que monto fue declarado Single y por tanto no le
corresponde un valor tipo String.
INF117 Introduccin a la Computacin Desarrollo de Programas II
14
3.4. Errores comunes en la declaracin y asignacin de las variables.
1. El no declarar una variable y no asignarle un valor inicial, conduce a errores. En VBA cada variable, de acuerdo
al tipo de dato declarado, toma un valor inicial.

Por ejemplo, el tipo de dato numrico toma valor inicial 0; el tipo String una cadena de texto vaca; el tipo de dato
boolean el valor False; entre otros. Entonces, si una variable no se declara y forma parte de una expresin
numrica, sta tomar el valor inicial 0. Si no se declara y forma parte de un texto, tomar como valor una cadena
vaca; y si forma parte una expresin lgica, tomar el valor False.

Por ejemplo:

Dim x As Double, y As Double
x=10
y=5
resultado = (x+y)*z

El valor de la variable resultado es 0, ya que al no declarar la variable z sta asume del tipo Variant con valor 0.

2. Al declarar las variables siempre debe de colocarle a cada una de ellas el tipo de dato asociado.

Por ejemplo: Si yo quisiera declarar tres variables enteras, entonces las formas correctas seran:

Dim a As Integer
Dim b As Integer
Dim c As Integer

O de manera alternativa:

Dim a As Integer, b As Integer, c As Integer

Importante: Si declarara as, las variables a,b,c:

Dim a, b, c As Integer

Esta sera una forma incorrecta, pues las variables a y b sern variables de tipo Variant y solamente la variable
c es de tipo Integer.

Veamos el siguiente ejemplo:

Dim a, b, c As Integer
Sub principal()
a = "hola"
MsgBox a
End Sub

Este procedimiento no genera ningn error de tipo ya que la variable a es de tipo Variant y no es Integer como
se deseaba.

Recuerde que en el curso no usaremos el tipo de dato VARIANT.

4. Expresi ones
Las constantes y variables pueden relacionarse mediante operaciones. A esta relacin la llamamos Expresin. Al
evaluar una expresin, sta nos devuelve un valor. Dependiendo de este valor, una expresin puede ser lgica o
aritmtica.

INF117 Introduccin a la Computacin Desarrollo de Programas II
15
4.1. Expresiones aritmticas
Son expresiones que devuelven como valor un nmero. Por ejemplo:

2+3*4 6, da como resultado el valor 8
(2 + 5^2) (5 +6), da como resultado el valor 16

4.2. Expresiones lgicas
Son expresiones que devuelven un valor lgico: TRUE o FALSE. Por ejemplo:

4<>10 AND 5>=0, da como resultado el valor TRUE
NOT ((50=50) OR (5>9)), da como resultado el valor FALSE
4.3. Concatenacin de datos String
El contenido de una variable de tipo de dato texto, siempre que sea explcito, se representa mediante comillas. As
por ejemplo:

Dim x As String
Dim y As String
Dim z As String
Dim w As String

Sub p2()
x = "Hola"
y = " Amigos"

'Operacin de concatenacin de cadenas usando el operador &
z = x & y
MsgBox z
Se mostrar la cadena: Hola Amigos

'Operacin de concatenacin de cadenas usando el operador +
w = x + y
MsgBox w
Se mostrar la cadena: Hola Amigos

End Sub

Nota:
Ambos operadores podran ser usados sin distincin para el caso del tipo de dato String.

Recuerde:



4.4. Conversiones entre tipos de dato
Cuando se mezclan variables de distintos tipos de datos en una misma expresin, VBA realiza, en muchos casos,
conversiones o promociones de tipo, estos es, convierte el tipo de dato de una variable a un tipo compatible que
permita llevar a cabo una cierta operacin. Por ejemplo:

Dim precio As Single, cantidad as Integer, subtotalRedondeado As Integer
precio= 7.2
cantidad = 3
subtotalRedondeado = precio * cantidad
La expresin (X<Y) AND (Z^2 = 4) es un tipo de dato lgico; sin embargo (X<Y) AND (Z^2 = 4) es un
tipo de dato texto (atencin a las comillas).
INF117 Introduccin a la Computacin Desarrollo de Programas II
16
La variable cantidad se declara con un tipo de dato Integer pero es convertida (internamente) a Single para
poder operar la expresin precio * cantidad. Luego, el subtotalRedondeado de 21.6 (Single) es convertido
(internamente) al valor de 22 del tipo Integer para finalmente ser asignado como el valor de la variable
subtotalRedondeado.

Pese a que VBA realiza las promociones de tipo en forma automtica, es mejor prctica el usar funciones de
conversin de manera explcita. Algunas de las funciones ms utilizadas son:

Nombre de la funcin Tipo de dato devuelto
CBool Boolean
CByte Byte
CDate Date
CDbl Double
CInt Integer
CLng Long
CSng Single
CStr String

En el ejemplo anterior, se podran usar algunas de las funciones anteriores para que la conversin sea explcita:

Dim precio As Single, cantidad as Integer, subtotalRedondeado As Integer
precio= 7.2
cantidad = 3
subtotalRedondeado = CInt(precio * CInt(cantidad))


INF117 Introduccin a la Computacin Desarrollo de Programas II
17
5. Funci ones usadas para el manej o de cadenas de
caracteres (Stri ng)

VBA tienen funciones que pueden ser usadas para el manejo de cadenas de caracteres. Para ello, acceda a la opcin
Ayuda y busque la palabra manipulacin de cadenas y le parecer la siguiente pantalla:


Ejemplo de la funcin StrComp
En este ejemplo se utiliza la funcin StrComp para devolver los resultados de una comparacin de cadenas. Si se
suministra 1 como tercer argumento, se realiza una comparacin que no diferencia maysculas de minsculas,
mientras que si el tercer argumento es 0 o se omite, se realiza una comparacin extacta.

Dim MiCadena1, MiCadena2, MiComp
MiCadena1 = "ABCD": MiCadena2 = "abcd" ' Define las variables.
MiComp = StrComp(MiCadena1, MiCadena2, 1) ' Devuelve 0.
MiComp = StrComp(MiCadena1, MiCadena2, 0) ' Devuelve -1.
MiComp = StrComp(MiCadena2, MiCadena1) ' Devuelve 1.

Ejemplo de la funcin InStr
En este ejemplo se utiliza la funcin InStr para devolver la posicin de la primera ocurrencia de una cadena en
otra.

Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP" ' Cadena en la que se busca.
SearchChar = "P" ' Se busca "P".

' Una comparacin textual que comienza en la posicin 4.
MyPos = Instr(4, SearchString, SearchChar, 1) ' Devuelve 6.


INF117 Introduccin a la Computacin Desarrollo de Programas II
18
' Una comparacin binaria que comienza en la posicin 1.
MyPos = Instr(1, SearchString, SearchChar, 0) ' Devuelve 9.
' La comparacin es binaria por configuracin predeterminada (si se omite el ltimo argumento).
MyPos = Instr(SearchString, SearchChar) ' Devuelve 9.

' En caso de no encontrar el valor buscado.
MyPos = Instr(1, SearchString, "W") ' Devuelve 0.


Ejemplo de la funcin Len
En este ejemplo se utiliza la funcin Len para devolver el nmero de caracteres en una cadena.

Dim MiCadena
MiCadena = "Hola a todos" ' Inicializa la cadenas.
MiLong = Len(MiCadena) ' Devuelve 11.


Ejemplo de la funcin Left
En este ejemplo se utiliza la funcin Left para devolver un nmero especificado de caracteres del lado izquierdo
de una cadena.

Dim UnaCadena, MiCadena
UnaCadena = "Hola Mundo" ' Define la cadena.
MiCadena = Left(UnaCadena, 1) ' Devuelve "H".
MiCadena = Left(UnaCadena, 6) ' Devuelve "Hola M".
MiCadena = Left(UnaCadena, 10) ' Devuelve "Hola Mundo".

Ejemplo de la funcin Mid
En este ejemplo se utiliza la funcin Mid para devolver un nmero especificado de caracteres de una cadena.

Dim MiCadena, PrimeraPalabra, UltimaPalabra, PalabraMedia

MiCadena = "Demostracin funcin Mid" ' Crea la cadena de texto.
PrimeraPalabra = Mid(MiCadena, 1, 12) ' Devuelve "Demostracin".
UltimaPalabra = Mid(MiCadena, 21, 3) ' Devuelve "Mid".
PalabraMedia = Mid(MiCadena, 14) ' Devuelve "funcin Mid".

Ejemplo de la funcin Right
En este ejemplo se utiliza la funcin Right para devolver un nmero especificado de caracteres de la parte derecha
de la cadena.

Dim UnaCadena, MiCadena

UnaCadena = "Hola Mundo" ' Define una cadena.
MiCadena = Right(UnaCadena, 1) ' Devuelve "o".
MiCadena = Right(UnaCadena, 6) ' Devuelve "Mundo".
MiCadena = Right(UnaCadena, 20) ' Devuelve "Hola Mundo".

Ejemplo de las funciones LTrim, RTrim y Trim
En este ejemplo se utilizan las funciones LTrim and RTrim para eliminar espacios a la derecha y a la izquierda de
una variable de cadena de caracteres. El uso de la funcin Trim logra el mismo resultado.

Dim MiCadena, CadenaCorte
MiCadena = " <-Cortar-> " ' Inicializa la cadena.
CadenaCorte = LTrim(MiCadena) ' CadenaCorte = "<-Cortar-> ".
CadenaCorte = RTrim(MiCadena) ' CadenaCorte = " <-Cortar->".
CadenaCorte = LTrim(RTrim(MiCadena)) ' CadenaCorte = "<-Cortar->".

' El uso de la funcin Trim por s sola logra el mismo resultado.
CadenaCorte = Trim(MiCadena) ' CadenaCorte = "<-Cortar->".
INF117 Introduccin a la Computacin Desarrollo de Programas II
19
Ejemplo de la funcin LCase
En este ejemplo se utiliza la funcin LCase para devolver la versin en minsculas de una cadena.

Dim UpperCase, LowerCase
Uppercase = "Hola Mundo 1234" ' Cadena a convertir.
Lowercase = Lcase(UpperCase) ' Devuelve "hola mundo 1234".


Ejemplo de la funcin UCase
En este ejemplo se utiliza la funcin UCase para devolver la versin en maysculas de una cadena.

Dim LowerCase, UpperCase
LowerCase = "Hola Mundo 1234" ' Cadena a convertir.
UpperCase = UCase(LowerCase) ' Devuelve "HOLA MUNDO 1234".

6. Subprogramas con parmetros
6.1. Declaracin de Subprogramas
Un subprograma se declara teniendo en cuenta el tipo de subprograma que es, el nombre con el que se identificar
a dicho subprograma, una lista de parmetros si fueran necesarios y, en algunos casos, el tipo de dato que
devuelven. Un subprograma tiene parmetros cuando:
a. El mismo subprograma necesita trabajar con dichos valores para cumplir con su finalidad.
b. Requiere la interaccin con otro subprograma que necesita de ciertos valores para trabajar o,
simplemente, para modificarlos. El resultado del trabajo del otro subprograma ser incorporado dentro
del primero para cumplir con su finalidad.

Recuerde:

Suponiendo que se declara la siguiente funcin:
Function fun1 (j As Integer, k As Double) As Double
.
. Instrucciones de la funcin
End Function

A los parmetros que se usan en la declaracin del subprograma fun1: j y k se les llama parmetros formales.

Suponiendo que se declara el siguiente procedimiento:
Sub procedimiento1(x As Integer, y As Double)

Cdigo del procedimiento
End Sub

A los parmetros que se usan en la declaracin del subprograma procedimiento1: x e y se les llama
parmetros formales.

Desde el procedimiento principal se les invocar de la siguiente manera:

Sub programa_principal()
Dim a As Integer
Dim b As Double
Dim z As Integer
Dim w As Double
En VBA existen 2 tipos de subprogramas:
Procedimiento: Es un grupo de instrucciones VBA que realiza una accin (o acciones).
Funcin: Es un grupo de instrucciones VBA que realizan un clculo y devuelven un nico valor.
INF117 Introduccin a la Computacin Desarrollo de Programas II
20
Dim resultado as Double
.....
Resultado = fun1(z,w)
.......
Call procedimiento1 (a, b)
End Sub

Al realizar la invocacin o llamada al subprograma que tiene parmetros, se pasan los valores que realmente se
quieren usar en dicho subprograma. Por esta razn, a estos parmetros se les llama parmetros reales.

En el ejemplo, en el procedimiento programa_principal se invoca al procedimiento procedimiento1, pasando
como parmetro reales a y b. y se invoca a la funcin fun1 pasando como parmetros reales z y w.

Recuerde:




Por ejemplo:
Se desea hallar la suma de los dgitos de un nmero de tres cifras almacenado en la celda B1 y muestra en la celda
B2 el resultado de esta suma.






En algunas ocasiones, necesitar que los valores que se pasan del programa principal al subprograma sean
modificados y en otras, que NO sean modificados. As, podemos dividir los tipos de parmetros en: parmetros
por valor y parmetros por referencia.
Los parmetros
que se pasan son
variables
Los parmetros
que se pasan son
valores fijos
Tambin se pueden pasar
variables, valores fijos, constantes.
Los parmetros reales que pueden ser pasados son datos constantes, variables o expresiones.
INF117 Introduccin a la Computacin Desarrollo de Programas II
21
6.2. Paso de parmetros en subprogramas
6.2.1. Parmetro por valor
En este caso, el valor que se pasa al subprograma es utilizado en los clculos, pero no es modificado. Es decir, si
el parmetro real que se pasa al subprograma es una variable, dicha variable retorna al programa principal con el
mismo valor que tena antes de llamar al subprograma.

6.2.2. Parmetro por referencia
En este caso, el parmetro real que se pasa al subprograma es una variable que ser utilizada y modificada en los
clculos del subprograma. Los parmetros reales slo pueden ser variables, ya que se espera modificar su valor,
por tanto no pueden ser ni valores fijos ni constantes.

En el momento que el control de ejecucin retorna al programa que llam al subprograma, la variable contiene un
valor distinto al valor que tena antes de llamar al subprograma; tendr el valor que se otorg en el subprograma.

6.3. Declaracin de parmetros por valor y por referencia
6.3.1. Parmetro por valor:
Para indicar que un parmetro es por valor, se coloca la palabra ByVal antes del nombre del parmetro.

6.3.2. Parmetro por referencia
Para indicar que un parmetro es por referencia, se coloca la palabra ByRef antes del nombre del parmetro. En
caso no se coloque palabra alguna antes del nombre del parmetro, VBA considera al parmetro como un
parmetro por referencia.

Por ejemplo:

La salida de este subprograma sera:
INF117 Introduccin a la Computacin Desarrollo de Programas II
22
El procedimiento procedimiento_con_parametros cuenta con tres parmetros: a, b y c. Siendo el primer
parmetro por valor, el segundo y el tercero por referencia (cuando no se especifica, VBA asume que es por
referencia).

Como se dijo antes, los parmetros por valor salen del procedimiento con el mismo valor con el que ingresaron,
mientras que los parmetros por referencia salen del procedimiento con el valor modificado. As, si algn otro
subprograma llama al procedimiento procedimiento_con_parametros el primer parmetro saldr del
procedimiento con el mismo valor con el que ingres, mientras que los otros dos saldrn del procedimiento con
sus valores cambiados: el segundo saldr con el valor absoluto del valor con el que ingres al procedimiento, y el
tercero saldr con un valor igual a la dcima parte del valor con el que ingres.

Por ltimo, el procedimiento procedimiento_principal llama al procedimiento procedimiento_con_parametros
pasando como parmetros reales: num_byte, num_integer y num_single. Es importante sealar que cada
parmetro real tiene su correspondiente parmetro formal, siendo ambos del mismo tipo de datos y conservando
el orden correspondiente en la lista de parmetros. As, si un parmetro formal es byte, entonces el parmetro
real tambin debe ser byte. En el ejemplo mostrado, se tiene:

Parmetros formales y reales del ejemplo anterior
Parmetro Real Parmetro Formal Tipo de dato
Num_byte A Byte
Num_integer B Integer
Num_single C single

Recuerde:

Siempre debe definir si un parmetro es por valor (ByVal) o es por referencia (ByRef). No es recomendable dejar
de declararlo como en el caso de la variable c de nuestro ejemplo, pues puede generar resultados inesperados.




INF117 Introduccin a la Computacin Desarrollo de Programas II
23
7. Ej erci ci os desarrol l ados
A continuacin se ver un problema, en el que se aplicarn los conceptos aprendidos en esta gua: uso de variables,
constantes, expresiones y parmetros.

7.1. Clculo de la venta de un producto
Se tiene la siguiente hoja de clculo:


Se necesita determinar el monto de venta de caramelos, teniendo como datos la cantidad de unidades vendidas y
el precio unitario del producto (no incluye impuesto). Adems se sabe que el I.G.V. es el 19% del subtotal.

7.1.1. Definicin
Explicacin: Calcular monto de venta de caramelos, teniendo como datos la cantidad de unidades
vendidas y el precio unitario del producto y que el I.G.V. es el 19%.
Datos de entrada: cantidad de unidades vendidas, precio unitario.
Datos de salida: Monto de venta.

7.1.2. Anlisis
Diagrama de mdulos:













7.1.3. Implementacin (Codificacin)

Se implementar el algoritmo antes presentado. Se crear un procedimiento principal llamado
CalcularMontoVenta, un procedimiento que lea los datos y una funcin que calcule el monto de la venta realizada.
Adems se declarar la constante IGV que toma el valor 0.19.

Calcular
Monto Venta
Leer Datos Calcular Venta Escribir Monto
de Venta
INF117 Introduccin a la Computacin Desarrollo de Programas II
24

En el procedimiento principal CalcularMontoVenta:

Primero se declaran las variables que se usarn. Todas las variables son de tipo numrico; por tanto, toman como
valor inicial cero.

Luego se llama al procedimiento LeerDatos, pasando como parmetros reales cant y precio. Dicho procedimiento
tiene como parmetros formales cantidad y precioUnitario, ambos por referencia; dentro del procedimiento se le
asigna al parmetro cantidad el valor de la celda B2 y al parmetro precioUnitario el valor de la celda B3; de esta
manera termina el procedimiento LeerDatos.

El control regresa al procedimiento principal CalcularMontoVenta, la siguiente instruccin a ejecutar sera llamar a la
funcin CalcularVenta.

En la funcin CalcularVenta se pasa como parmetros cant y precio (que ahora contienen el valor de las celdas B2 y
B3, respectivamente), en dicha funcin se halla el monto total de la venta, usando la constante IGV. La funcin
termina retornando el valor de la venta al subprograma principal.

El control regresa al procedimiento principal CalcularMontoVenta, la siguiente instruccin a ejecutar es la llamada al
procedimiento EscribirMontoVenta.

El procedimiento EscribirMontoVenta, escribe el valor de la variable montoVenta en la celda B5. De esta manera
termina el procedimiento EscribirMontoVenta.

El control regresa al procedimiento CalcularMontoVenta, y finaliza el subprograma.
7.2. Costo de preparacin de una parrilla
Se desea calcular el costo de una parrilla para 12 personas en VBA. Para ello se cuenta con la siguiente
informacin:
Note que en el programa se han declarado todas las variables y para cada parmetro se ha indicado el tipo de
parmetro y el tipo de dato tanto del procedimiento como de la funcin; y se indica el tipo de dato que devuelve
la funcin CalcularVenta.
INF117 Introduccin a la Computacin Desarrollo de Programas II
25
7.2.1. Definicin
Calcular el costo de preparar una parrilla para 12 personas teniendo como datos de entrada el costo y cantidad de
cada uno de los ingredientes (todos los costos se asumen con IGV).

7.2.2. Implementacin (Codificacin)
Para la implementacin se ha creado un procedimiento principal llamado CalcularCostoParrilla, un procedimiento
que lee los datos necesarios, una funcin que calcula el costo total y un procedimiento para mostrarlo.

Para la implementacin en VBA ser:



7.2.3. Resultado
Despus de ejecutar el subprograma obtendremos el siguiente resultado:




Ejercicio: Coloque formato a la variable de salida. Use funciones de redondeo.

INF117 Introduccin a la Computacin Desarrollo de Programas II
26
7.3. Clculo de los volmenes parciales y total del lpiz
Un alumno desea calcular el volumen de la punta, el volumen de la seccin central, el volumen del borrador y el
volumen total del lpiz. Para ello identifica tres secciones: la punta (forma cnica), la seccin central (forma
cilndrica) y el borrador (forma de semiesfera). Se tiene la siguiente hoja de clculo en Excel con los datos
correspindientes a las distintas secciones del lpiz:



Para calcular lo pedido, Ud. desarrollar en VBA:

1. Un subprograma Leer_datos que lea los datos de entrada desde las celdas en Excel como se muestra en la
figura anterior.
2. Un subprograma Calc_vol_cono que reciba como parmetros un radio y la altura de un cono, y que calcule
el volumen de la punta del lpiz.
3. Un subprograma Calc_vol_cilindro que reciba como parmetros un radio y la altura de un cilindro, y que
calcule el volumen de la seccin central del lpiz.
4. Un subprograma Calc_vol_semiesfera que reciba como parmetro un radio, y que calcule el volumen del
borrador del lpiz.
5. Un subprograma Calc_vol_total que reciba como parmetros el volumen de la punta, el volumen de la
seccin central y el volumen del borrador del lpiz, y que calcule el volumen total del lpiz.
6. Un subprograma Calcular_volumenes que reciba como parmetros un radio, la altura de un cilindro y la
altura de un cono, y que usando los subprogramas anteriores, calcule y devuelva el volumen de la punta, el
volumen de la seccin central, el volumen del borrador y el volumen total del lpiz.
7. Un subprograma Mostrar_resultados que muestre los resultados en las celdas en Excel como se muestra en
la figura anterior.
8. Un subprograma Principal que ayude a resolver el problema planteado. Sugerencia use los subprogramas
anteriormente desarrollados.

7.3.1. Definicin
Calcular el volumen de la punta, el volumen de la seccin central, el volumen del borrador y el volumen total del
lpiz teniendo como datos de entrada el radio, altura del cono y la altura del cilindro.

7.3.2. Implementacin (Codificacin)

Para desarrollar los subprogramas debemos de ingresar al VBE:

INF117 Introduccin a la Computacin Desarrollo de Programas II
27



7.3.3. Resultado



Ejercicio: Elaborar el diagrama de mdulos que corresponde a la implementacin presentada.


7.4. Cdigo de verificacin (Modificado de Laboratorio #4 20121)
Uno de los procesos necesarios para cada uno de los sistemas de la universidad es comprobar que el cdigo
ingresado por un alumno sea vlido de acuerdo a los reglas establecidas por la universidad. Se sabe que el cdigo
de alumno est formado por 9 dgitos AAAAXXXXY, donde:

AAAA: ao de ingreso a la universidad
XXXX: nmero de registro
Y: dgito verificador

INF117 Introduccin a la Computacin Desarrollo de Programas II
28
Por ejemplo, si el cdigo del alumno fuese 199978658 entonces sus partes seran:
1999: ao de ingreso a la universidad
7865: nmero de registro
8: dgito verificador

La universidad utiliza una frmula para obtener el dgito verificador:
1. Se toma el valor absoluto de la diferencia entre el ao de ingreso (AAAA) y el nmero de registro
(XXXX).
2. Se obtiene el residuo de la divisin del resultado anterior entre el ao (AAAA).
3. El dgito verificador corresponde a las unidades del resultado anterior.

Por ejemplo, para el cdigo 199978658
1. |1999 7865| = 5866
2. Residuo(5866,1999) = 1868
3. Dgito verificador = 8.


Se elabora la siguiente hoja de Excel:


Los datos del alumno son ingresados como se muestra en la figura:

PrimerNombre PrimerApellido SegundoApellido Cdigo

Siempre sern ingresados el primer nombre y los dos apellidos del alumno, en ese orden.

Se pide implementar un programa en VBA que muestre un mensaje indicando la validez del cdigo de un alumno,
tal como se muestra en la figura anterior.


7.4.1. Codificacin





INF117 Introduccin a la Computacin Desarrollo de Programas II
29



Ejercicio: Elaborar el diagrama de mdulos que corresponde a la implementacin presentada
INF117 Introduccin a la Computacin Desarrollo de Programas II
30
8. Ej erci ci os propuestos
8.1. Sistema monetario
Se tiene el sistema monetario de un pas en el que existen 3 denominaciones de monedas. Se desea cambiar un
monto de dinero (nmero entero) con el menor nmero de monedas posibles. Para lograr este propsito, se
debera cubrir lo ms rpido posible, comenzando por las monedas de mayor denominacin. El problema surge
cuando se dispone de una cantidad de monedas menor a la cantidad requerida. Para evaluar la posibilidad de
realizar el cambio solicitado, se pide que utilizando VBA con Excel implemente:

1. Un subprograma CantidadMonedas que reciba como parmetros el monto a cambiar y la denominacin de
la moneda, y que devuelva la cantidad de monedas necesarias de dicha denominacin.
2. Un subprograma ObtenerCantidadMonedas que a partir de un monto a cambiar y las denominaciones de
monedas disponibles en el pas, nos devuelva la cantidad de monedas necesarias de cada denominacin.
Deber utilizar el subprograma anterior.
3. Un subprograma EsPosible que reciba como parmetros las cantidades disponibles y las cantidades
necesarias de cada denominacin de monedas y permita determinar si es posible realizar el cambio.
4. Un subprograma Principal que permita dar solucin al problema planteado.

Nota: Lea las denominaciones de las monedas de las celdas. Las denominaciones siempre aparecern ordenadas de
menor a mayor.


8.2. Ganancia de un evento (Modificado de Laboratorio #4 20121)
Una empresa dedicada a la organizacin de eventos desea saber si le es favorable (genera ganancias) realizar una
conocida obra de teatro, para lo cual elaboran la siguiente hoja de clculo en Excel:



Los datos necesarios para los clculos son ingresados en un cadena de texto con la siguiente estructura:

PrecioEntradaSuperVIP#PrecioEntradaVIP#PrecioEntradaGeneral&NmeroDeEntradasVendidas

INF117 Introduccin a la Computacin Desarrollo de Programas II
31
Se sabe que el IGV es el 18% y que del total entradas vendidas 10% son Super VIP, 30% VIP y 60% General.
Asimismo, se dice que el evento es rentable si el monto total (sin IGV) es mayor a 4 veces el monto de IGV.

Se pide implementar un programa en VBA que permita calcular los datos mostrados en la figura anterior, siguiendo
estrictamente el siguiente diagrama de mdulos:




9. Bi bl i ograf a
- Marcela Genero Bocco. Excel con Visual Basic Para Aplicaciones (VBA).Noviembre 2002.
- CAIR, Osvaldo. Metodologa de la programacin. 2a edicin. Mxico: Alfaomega, 2003.
- Excel VBA Programming for Dummies. John Walkenbach Wiley Publishing, Inc. (2004)
- Ayuda Office Excel 2010


10. Actual i zaci n:
21/10/2013

También podría gustarte