inf117 - material de laboratorio - sesión 04 - 2013-2

Upload: edison-marin

Post on 14-Oct-2015

8 views

Category:

Documents


0 download

TRANSCRIPT

  • 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. Depuracin 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= 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. Variables 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. Expresiones 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:

    410 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

  • 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. Funciones usadas para el manejo de cadenas de caracteres (String)

    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 = " " ' Inicializa la cadena. CadenaCorte = LTrim(MiCadena) ' CadenaCorte = " ". CadenaCorte = RTrim(MiCadena) ' CadenaCorte = " ". CadenaCorte = LTrim(RTrim(MiCadena)) ' CadenaCorte = "". ' El uso de la funcin Trim por s sola logra el mismo resultado. CadenaCorte = Trim(MiCadena) ' CadenaCorte = "".

  • 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. Ejercicios desarrollados 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. Ejercicios 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. Bibliografa - 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. Actualizacin: 21/10/2013