16
Página 1 de 16 Fundamentos de programación, Práctica #2 UNIVERSIDAD NACIONAL DE COLOMBIA SEDE DE MEDELLÍN ______________________________ FACULTAD NACIONAL DE MINAS Escuela de Sistemas Fundamentos de Programación PRÁCTICA # 2 OBJETIVOS : General: Estudiar y utilizar los elementos del entorno de trabajo, tanto a nivel del Sistema Operativo como del Excel – Visual Basic for Applications (VBA). Específicos: (a) Entender y utilizar Explorador de Windows, como herramienta básica de interacción con el Sistema Operativo. (b) Entender y Aplicar el concepto de ambiente de trabajo para el diseño de aplicaciones, con sus componentes básicos: menú principal, barra de herramientas, caja de controles, explorador de proyectos, ventana de propiedades, formulario base de diseño. (c) Diseñar una interfaz sencilla, manipulando los objetos (controles) del tipo: UserForm, Label, TextBox, CommandButton, Image. (d) Entender y utilizar los conceptos de asignación de memoria, operadores aritméticos y de concatenación, eventos, lectura y escritura de variables. (e) Reconocer y manejar los diferentes tiempos en un proyecto VBA: diseño, ejecución, depuración. (f) Emplear la definición, lectura y escritura de variables en Visual Basic for Applications (VBA). 1. EXPLORADOR DE WINDOWS: 1.1 El explorador de Windows es una herramienta básica para interactuar con el Sistema Operativo. Permite efectuar diversas operaciones: visualizar el contenido de archivos y carpetas en cada dispositivo de almacenamiento (diskette, discos duros, CD’s, USB’s, etc.); copiar, cortar, pegar archivos y carpetas; conexión a la Internet. En la figura 1.1, mostrada a continuación, se presenta la interfaz gráfica de usuario del explorador de Windows, con sus diversos componentes:

Practica 02

Embed Size (px)

DESCRIPTION

Practica2

Citation preview

Page 1: Practica 02

Página 1 de 16  Fundamentos de programación, Práctica #2 

 

UNIVERSIDAD NACIONAL DE

COLOMBIA

SEDE DE MEDELLÍN ______________________________ FACULTAD NACIONAL DE MINAS

Escuela de Sistemas

Fundamentos de

Programación

PRÁCTICA # 2

 

OBJETIVOS: 

• General: Estudiar y utilizar los elementos del entorno de trabajo, tanto a nivel del Sistema Operativo como del Excel – Visual Basic for Applications (VBA). 

• Específicos: (a) Entender y utilizar Explorador de Windows, como herramienta básica de interacción con el Sistema Operativo. (b) Entender y Aplicar el concepto de ambiente de trabajo para el diseño de  aplicaciones,  con  sus  componentes  básicos:  menú  principal,  barra  de  herramientas,  caja  de controles, explorador de proyectos, ventana de propiedades, formulario base de diseño. (c) Diseñar una  interfaz  sencilla,  manipulando  los  objetos  (controles)  del  tipo:  UserForm,  Label,  TextBox, CommandButton, Image. (d) Entender y utilizar los conceptos de asignación de memoria, operadores aritméticos y de concatenación, eventos, lectura y escritura de variables. (e) Reconocer y manejar los diferentes  tiempos  en un proyecto VBA: diseño,  ejecución, depuración.  (f)  Emplear  la definición, lectura y escritura de variables en Visual Basic for Applications (VBA). 

 1. EXPLORADOR DE WINDOWS:  1.1 El explorador de Windows es una herramienta básica para  interactuar  con el  Sistema Operativo. Permite efectuar diversas operaciones: visualizar el contenido de archivos y carpetas en cada dispositivo de almacenamiento (diskette, discos duros, CD’s, USB’s, etc.); copiar, cortar, pegar archivos y carpetas; conexión  a  la  Internet.  En  la  figura  1.1, mostrada  a  continuación,  se  presenta  la  interfaz  gráfica  de usuario del explorador de Windows, con sus diversos componentes:  

Page 2: Practica 02

Página 2 de 16  Fundamentos de programación, Práctica #2 

 

 

 1.2 Operaciones típicas con el explorador de Windows son: • Copiar un archivo o una carpeta: (a) ‐ haga clic en el archivo o en la carpeta que desee copiar. (b) ‐ En el  menú  Edición,  haga  clic  en  Copiar.  (También  puede  hacer  clic  en  ícono  Copiar  en  la  barra  de herramientas; o elegir  la opción Copiar del menú  contextual que  se activa haciendo  clic  con el botón derecho del mouse).  (c) – Ubíquese en  la  carpeta o el disco donde desee colocar  la  copia.  (d)  ‐ En el menú Edición, haga clic en Pegar. (También puede hacer clic en ícono Pegar en la barra de herramientas). Notas: (i) ‐ Puede seleccionarse más de un archivo o carpeta al sostener la tecla Control e ir haciendo clic en  los  archivos  o  carpetas  a  copiar.  (ii)  –  También  se  puede  copiar  de  un  computador  a  otro  en  un entorno de red local o de red remota (por ejemplo, Internet), abriendo la carpeta Mis Sitios de Red. • Abrir un archivo o una carpeta: (a) ‐ Haga doble clic en la unidad que contenga el archivo. (b) ‐ Haga doble clic en el archivo o en la carpeta que desee abrir. • Mover archivos si  los arrastra en  lugar de utilizar menús: (a) ‐ Haga clic en el archivo o en  la carpeta que desee mover  (en  el panel de detalles).  (b)  ‐ Asegúrese de que  el  lugar  al que desee  arrastrar  el archivo o  la carpeta esté visible (en el panel arbóreo). (c) – Arrastre, sosteniendo el clic, el archivo o  la carpeta hasta su destino, y suelte cuando la ubicación sea la deseada. • Enviar  rápidamente archivos  y  carpetas a otro  lugar:  (a)  ‐ Haga  clic derecho  en el  archivo o  en  la carpeta que desee enviar. (b) ‐ Seleccione Enviar a y, a continuación, haga clic en  la opción del destino que aparece en el submenú desplegado.  2. ENTORNO DE DISEÑO EN VBA:  2.1  En  la  siguiente  figura  se  muestran  los  componentes  principales  del  entorno  de  diseño  de  aplicaciones  de Visual Basic for Applications (VBA). Con estos elementos se elaboran los proyectos Visual Basic en el curso. (Para más detalles véase las notas de clase, o apuntes).  

Page 3: Practica 02

Página 3 de 16  Fundamentos de programación, Práctica #2 

 

  

2.2 Algunas operaciones típicas con el entorno de desarrollo en VBA son: •  Ocultar/Visualizar  diversos  componentes  como  a  caja  de  controles,  la  barra  de  herramientas,  la ventana de propiedades, la ventana exploradora de proyectos (explorador de proyectos), el formulario. • Ubicar controles sobre el formulario de diseño. • Establecer propiedades al formulario y a los diversos controles ubicados sobre él. •  Asociar  programas  (procedimientos,  subprogramas,  rutinas,  funciones)  con  los  diversos  controles (objetos) que así lo requieran.  3. EJERCICIO 1:  El  Índice  de Masa  Corporal  –  IMC  de  una  persona  puede  calcularse  de manera  sencilla mediante  la siguiente fórmula:  

( )( )metrosenaltura

kgsenpesoIMC 2=  

 Así por ejemplo, una persona que pese 65 kgs. y mida 1.72 mts. tendría un IMC de 21.97 (65/1.722)  Desarrollar un proyecto en VBA para calcular este valor.  SOLUCIÓN:  3.1 Activar el entorno de trabajo Excel‐VBA en Excel 2007 (Vista) 

Page 4: Practica 02

Página 4 de 16  Fundamentos de programación, Práctica #2 

 

 Para activar el entorno de  trabajo Excel‐VBA  si  se  tiene  instalado el Windows Vista  con  su  respectivo Office simplemente desde  la barra de  tareas haga clic en  INICIO y  luego en Microsoft Office Excel1  (es posible que primero se tenga que ubicar el puntero del mouse en Microsoft Office, dependiendo de  la máquina en la cual se esté trabajando). Aparecerá la ventana o escritorio principal de Excel. Por ejemplo, en la figura siguiente se muestra el escritorio principal de Excel 2007 (versión en español).  La flecha roja señala la opción y el ícono de Visual Basic, dentro de la ficha (pestaña o lengüeta) llamada Programador.  

 

 

Esta ficha se activa haciendo clic en el botón de Windows (fecha verde) y haciendo de nuevo clic en  la pestaña Opciones de Excel (parte inferior de la figura 1.4, página siguiente), señala con la flecha roja. Al hacer clic en la pestaña Opciones de Excel se llega al panel de diálogo mostrado en la figura 1.5. Allí se debe activar  la opción Mostrar ficha Programador en  la cinta de opciones. A partir de esta activación, siempre se mostrará la ficha Programador, a partir de la cual se accesa el entorno de VBA. Sin embargo, independientemente de si la ficha Programador está o no activada, siempre es posible llegar al entorno VBA pulsando las teclas Alt F11 a la vez (sostenga la tecla Alt y pulse la tecla F11). 

 

                                                            1 Microsoft Office, Microsoft Office Excel son marcas registradas de Microsoft Corporation (http://www.microsoft.com/spanish/) 

Page 5: Practica 02

Página 5 de 16  Fundamentos de programación, Práctica #2 

 

 

 

  

Page 6: Practica 02

Página 6 de 16  Fundamentos de programación, Práctica #2 

 

3.2 Activar el entorno de trabajo Excel‐VBA en Excel 2003 (XP)  Si en vez de tener instalado el Windows Vista con su respectivo Office se tiene la versión anterior (Office 2003) se debe proceder de la siguiente manera. Primero debe permitírsele al Excel ejecutar macros, para esto ir a Herramientas – Macro – Seguridad como se muestra en la Figura 1.6.  

  Luego donde dice “Nivel de seguridad” debe seleccionarse Medio o Bajo como se muestra en  la Figura 1.7. En el primer caso aparecerá una ventana de confirmación cada vez que se abra el archivo de Excel correspondiente  para  determinar  si  efectivamente  se  desea  habilitar  las macros.  En  el  segundo  caso todas  las macros podrán ser ejecutadas sin confirmación previa. Como esta propiedad de seguridad no se define para un archivo en particular si no para todo el Excel en general, se recomienda seleccionar la opción “Medio” para evitar que otras macros externas puedan hacer alguna operación no deseada.  

Page 7: Practica 02

Página 7 de 16  Fundamentos de programación, Práctica #2 

 

  3.3 Elaborar el proyecto en VBA   Una vez se define el nivel de seguridad apropiado  (sólo se debe hacer una vez en el equipo siempre y cuando luego no se cambie esta configuración) se puede proceder a crear el proyecto en VBA. Para esto Se selecciona Herramientas – macro – Editor de Visual Basic como se muestra en la Figura 1.8. Una forma abreviada de hacer esto, al igual que en Excel 2007 es oprimir las teclas Alt + F11.  

  

 

Page 8: Practica 02

Página 8 de 16  Fundamentos de programación, Práctica #2 

 

Luego  de  entrar  al  entorno  de  programación  VBA  se  puede  iniciar  diseñando  la  Interfaz  del Usuario dando clic derecho en el proyecto y seleccionando  Insertar – UserForm, como se muestra en  la Figura 1.9.  

  Una vez hecho esto aparecerá una ventana (form o formulario) en blanco como se muestra en la parte derecha de la Figura 1.10. También debe aparecer el cuadro de herramientas (que se muestra en la parte izquierda de la misma figura) donde se encuentran los controles típicos para desarrollar una interfaz. La explicación de cada uno se presenta a continuación.   

Control  Descripción Formulario (form)  Corresponde al formulario (ventana) en sí Etiqueta (label)  Sirve  generalmente  para  agregar  texto  a  manera  de  títulos, 

anotaciones, etc. Cuadro  de  texto (textbox) 

Sirve  generalmente para  las operaciones de  lectura/escritura de  las variables de entrada y salida respectivamente 

Botón  (command button) 

Sirve para realizar alguna operación bien sea de lectura o escritura de datos, de transformación, o cualquier combinación de estas 

Marco (frame)  Puede  servir  para  diseñar  el  formulario  de  manera  ordenada subdividiendo  la ventana total en diferentes secciones. Por ejemplo: sección  de  lectura  de  variables  de  entrada,  sección  de  escritura  de variables de  salida,  sección  de operaciones  (botones).  La utilización de este control es opcional. 

  

Page 9: Practica 02

Página 9 de 16  Fundamentos de programación, Práctica #2 

 

  

 Téngase en cuenta que  cualquiera de estos controles  tiene una  serie de propiedades que pueden  ser modificadas usando la ventana de propiedades que sale al darle clic derecho al control que se agregue al formulario  y  seleccionando  propiedades,  o  mediante  la  opción  Ver‐  Ventana  de  propiedades  (o abreviado como F4) y señalando el control correspondiente  (el  formulario en sí mismo es  también un control  con  propiedades  propias).  De  cualquiera  de  las  dos  formas  debe  aparecer  la  ventana  de propiedades  para  el  control  seleccionado  como  se  muestra  en  la  Figura  1.11  (en  este  caso  las propiedades corresponden a un control tipo “label” que se describirá a continuación).  

Propiedad  Descripción (Name)  Identificador  único  que  tendrá  el  control  dentro  del  proyecto.  Se 

recomienda utilizar nombres mnemotécnicos que consideren  tanto el  tipo de  control  como  la  función  asociada  (por  ejemplo  botonAceptar, textoResultados, etiquetaTitulo, etc.) 

Backcolor  Color de fondo Caption  Texto del control, aplica para todos los controles excepto para el cuadro de 

texto Font  Propiedades del texto: tipo de letra, tamaño, estilos y efectos Forecolor  Color del texto Text  Texto que aparece en el control cuadro de texto 

 *Nota: Estas propiedades pueden ser definidas tanto en tiempo de diseño (como en estos ejemplos) o en tiempo de ejecución (de manera dinámica) al interactuar con el usuario.  

Page 10: Practica 02

Página 10 de 16  Fundamentos de programación, Práctica #2 

 

  

 Teniendo en cuenta lo anterior es fácil diseñar una interfaz para el problema planteado como se muestra en la Figura 1.12.  

     

 

Page 11: Practica 02

Página 11 de 16  Fundamentos de programación, Práctica #2 

 

  

 Una  vez definida  la  interfaz  se procede  a pasar  el  algoritmo  al  código  correspondiente  en VBA.  Para hacer esto  se puede  seleccionar Ver – Código  (o abreviado  como F7) o dando doble  clic en  cualquier parte del formulario.  

  

 Como el VBA es un entorno de programación estructurado basado en eventos  (ciertas operaciones se llevan a cabo cuando cierto evento ocurre sobre un control) el código se distribuye como se muestra en la figura 1.13. Así por ejemplo, al dar doble clic en el control botonCalcular aparecería en el entorno de programación el cursor situado al interior de:   

marcoEntrada

marcoResultados

marcoOpciones

botonCalcular botonSalir

etiquetaPeso

etiquetaEstatura

etiquetaIMC 

textoPeso 

textoEstatura 

textoIMC 

Page 12: Practica 02

Página 12 de 16  Fundamentos de programación, Práctica #2 

 

Private Sub botonCalcular_Clic()    End Sub  Esto significa que  lo que se escriba al  interior de esas  instrucciones será  lo que se ejecutaría cuando al correr  el  programa  se  de  clic  sobre  el  botón  Calcular.  Nótese  que  en  esa  instrucción  aparece “botonCalcular_Clic()” y no “Calcular_Clic()” pues el nombre del control (que se definió con la propiedad Name) es “botonCalcular” mientras que “Calcular” es simplemente  lo que aparece en pantalla. En este caso  lo  que  se  debe  ejecutar  es  precisamente  lo  que  estamos  buscando  con  este  algoritmo  que  es calcular el IMC de una persona. Si hiciéramos el diagrama de caja respectivo de este problema sería algo como:  

  Que  traducido  a  VBA  es  precisamente  lo  que  aparece  en  la  parte  superior  de  la  Figura  1.13  para botonCalcular.  Es  necesario  recordar  que  TODAS  las  variables  (las  de  entrada,  las  de  salida  y  las intermedias)  que  se  utilicen  en  el  código  deben  ser  declaradas,  esto  con  el  fin  que  el  lenguaje  de programación sepa de qué tipo de datos es cada una. Un listado de cómo se declaran en VBA los tipos de datos más importantes vistos en la clase teórica se presenta a continuación:  

Tipo de dato  Sintaxis en VBA Entero Corto  Integer Entero Largo  Long Real Simple  Single Real Doble  Double Cadena de texto  String Lógico  Boolean 

 Luego de la declaración de variables aparece:   peso = Val(textoPeso.Text) estatura = Val(textoEstatura.Text)  Las cuales asignan valores a las variables peso y estatura respectivamente, a partir de lo digitado en las correspondientes  cuadros  de  texto  en  tiempo  de  ejecución.  Con  la  función  Val()  se  asigna  el  valor numérico de  lo digitado; si se digitan números obviamente  los valores asignados corresponden a esos números; si se digitan letras y otros caracteres, se asignará cero.  Luego aparece el cálculo de la variable de salida: IMC = peso / (estatura ^ 2)  

Leer peso 

Leer estatura 

IMC = peso / estarura2 

Mostar IMC 

Page 13: Practica 02

Página 13 de 16  Fundamentos de programación, Práctica #2 

 

Y por último aparece la instrucción: textoIMC.Text = IMC, que lo que hace es precisamente poner en  la caja de texto textoIMC el valor calculado.  Como  en  la  interfaz  diseñada  también  aparece  un  botón  para  salir,  es  necesario  agregar  el  código correspondiente.  En  VBA  la  instrucción  que  se  emplea  para  terminar  un  programa  es  End  como  se muestra  en  la  parte  inferior  de  la  figura  1.13.  En  este  caso  como  dicha  instrucción  se  encuentra  al interior de  Private  Sub botonSalir_Clic(),  esto  significa  que  cuando  al  ejecutar  el programa  se  de  clic sobre ese boton el programa terminaría (se cerraría la ventana).  4. EJERCICIO 2:  Teniendo en cuanta  lo aprendido hasta el momento, realice un proyecto en VBA para  leer dos valores numéricos  y  tener  la  opción  de  realizar  sobre  ellos  las  operaciones  aritméticas  básicas.  Una  posible interfaz se muestra en la Figura 1.14.  

  

 Nótese que además de los botones para las 4 operaciones aritméticas básicas y el botón de salir, hay dos botones adicionales: “Leer Datos” y “Borrar” para hacer el programa un poco más completo. Como se muestra en  la parte media de  la figura 1.15 el botonBorrar  lo único que hace es poner el contenido de los cuadros de texto vacíos.  Para este problema como se tienen varias y no solo una operación (a diferencia del ejercicio anterior) es conveniente hacer dos cosas:  

• Primero,  las variables (tanto de entrada como de salida) no se definen al  interior del código de cada operación si no de manera general como se muestra en la parte superior figura 1.15. Para hacer  esto  solo  es  necesario  seleccionar  en  la  ventana  del  código  la  opción  “General”  que aparece de primera en la lengüeta que sale en la parte superior izquierda de esa ventana. Lo que se escriba allí aparecerá aparte de  la programación de  los controles y será general para  todos ellos. Esto significa que las variables que se declaren allí (al igual que como lo estamos haciendo para  este  ejercicio)  serán  “comunes”  para  todos  los  controles  y  por  tanto  no  es  necesario declararlas en cada uno. 

• Segundo, y  tendiendo en cuenta  lo anterior,  la  lectura de  los datos de entrada no se hace en cada  operación,  si  no  que  se  tiene  un  botón  específico  (botonLeer)  para  hacerlo  como  se 

Page 14: Practica 02

Página 14 de 16  Fundamentos de programación, Práctica #2 

 

muestra en el segundo bloque presentado en la figura 1.15. Esto sirve para no tener que copiar el mismo código en todos los botones de operaciones. Nótese que al final aparece la instrucción Msgbox “Datos  leidos”. Esta sirve para que aparezca una ventana de  información con el  texto correspondiente. 

 

  Nota: Un apóstrofe (o comilla simple) indica un comentario. Los comentarios son ignorados a tiempo de ejecución;  sólo  sirven para explicar  (documentar)  ciertas partes de un  código  como  se muestra  en  la parte  final de  la  figura  1.15  (en botonSalir). Normalmente en VBA  tales  comentarios  se muestran en verde (salvo que se cambie la convención de colores del editor).  Aparte de  la definición  (general) de  variables  y de  los botones de  “Leer Datos”,  “Borrar”  y  “Salir”  se encuentran los botones para las 4 operación básicas. Cada uno tendrá un código muy simple como el que se muestra a manera de ejemplo para botonSumar en  la figura 1.15. LA única operación que tiene una restricción especial es  la de dividir, puesto que  si B  toma el  valor de 0 no  se puede  realizar  (división indefinida). Para tener en cuenta esta situación es posible emplear la instrucción SI … DE LO CONTRARIO … FIN SI, cuya traducción a VBA se presenta en la figura 1.16   

Page 15: Practica 02

Página 15 de 16  Fundamentos de programación, Práctica #2 

 

  

Nótese en este código que si B es diferente de 0, la operación se realiza normalmente y el resultado se imprime, mientras que en caso contrario (si B es cero) se mostraría un mensaje de información indicando la situación.  5. EJERCICIOS ADICIONALES:  a)  Puede  extenderse  los  conceptos  vistos  en  la  presente  práctica  para  diseñar  y  programar  una calculadora sencilla como la ilustrada en la figura 1.17.  

      b) Efectuar, por  lo menos otra sesión práctica. Por ejemplo, diseñar una  interfaz para  leer tres valores numéricos, correspondientes a  los  lados de un  triángulo, y calcular el área del  triángulo empleando  la fórmula  de Herón  de Alejandría  [5],  siendo A, B,  C  los  lados  y  S  el  semiperímetro  (semisuma  de  los lados): 

  

 REFERENCIAS: 

))()(( CSBSAASAREA −−−=

Page 16: Practica 02

Página 16 de 16  Fundamentos de programación, Práctica #2 

 

Walkenbach, J.: «The Spreadsheet Page/Excel Developers Tips for VBA users», J‐Walk & Associates, Inc. http://www.j‐walk.com/ss/ (visita en Junio 21 de 2008). 

Alvarez‐Montoya,  William:  «Fundamentos  de  Programación  con  VBA  y  Excel»,  en  la  página  web http://virtual2.unalmed.edu.co/moodle.  

Chapra, Steven C.; Canale, Raymond P.: «Numerical Methods for Engineers, with software applications», fourth edition, McGraw‐Hill, 2002, chapters 1, 2. 

Herón de Alejandría, en Gacetilla matemática http://www.arrakis.es/~mcj/heron.htm Barker,  R.M.;  Harris,  P.M.;  Parkin,  G.I.:  «Developing  Advanced  Scientific  Engineering  Spreadsheet 

Applications», December 2006,  The UK’s National Measurement  Laboratory, http://www.npl.co.uk/ (visitada en Junio 22 de 2008). 

Walkenbach, J.: «Microsoft Office Excel 2007 VBA Programming for DUMMIES», Wyley Publishing,  Inc., 2007. (puede leerse online en http://www.docstoc.com/docs/document‐preview.aspx?doc_id=1659168; capítulos: 3, 7, 10, 14, 15, 16, 17, 22.