Anda di halaman 1dari 16

UNIVERSIDAD NACIONAL DE COLOMBIA SEDE DE MEDELLN ______________________________ FACULTAD NACIONAL DE MINAS Escuela de Sistemas

OBJETIVOS:

Fundamentos de Programacin PRCTICA # 2

General:Estudiaryutilizarloselementosdelentornodetrabajo,tantoaniveldelSistemaOperativo comodelExcelVisualBasicforApplications(VBA). Especficos: (a) Entender y utilizar Explorador de Windows, como herramienta bsica de interaccin con el Sistema Operativo. (b) Entender y Aplicar el concepto de ambiente de trabajo para el diseo de aplicaciones, con sus componentes bsicos: men principal, barra de herramientas, caja de controles, explorador de proyectos, ventana de propiedades, formulario base de diseo. (c) Disear una interfaz sencilla, manipulando los objetos (controles) del tipo: UserForm, Label, TextBox, CommandButton,Image.(d)Entenderyutilizarlosconceptosdeasignacindememoria,operadores aritmticosydeconcatenacin,eventos,lecturayescrituradevariables.(e)Reconocerymanejarlos diferentes tiempos en un proyecto VBA: diseo, ejecucin, depuracin. (f) Emplear la definicin, lecturayescrituradevariablesenVisualBasicforApplications(VBA).

1.EXPLORADORDEWINDOWS: 1.1 El explorador de Windows es una herramienta bsica para interactuar con el Sistema Operativo. Permiteefectuar diversasoperaciones: visualizar el contenidodearchivos y carpetasen cada dispositivo de almacenamiento (diskette, discos duros, CDs, USBs, etc.); copiar, cortar, pegar archivos y carpetas; conexin a la Internet. En la figura 1.1, mostrada a continuacin, se presenta la interfaz grfica de usuariodelexploradordeWindows,consusdiversoscomponentes:

Pgina1de16

Fundamentosdeprogramacin,Prctica#2

1.2OperacionestpicasconelexploradordeWindowsson: Copiar un archivo o una carpeta: (a) haga clic en el archivo o en la carpeta que desee copiar. (b) En el men Edicin, haga clic en Copiar. (Tambin puede hacer clic en cono Copiar en la barra de herramientas; o elegir la opcin Copiar del men contextual que se activa haciendo clic con el botn derecho del mouse). (c) Ubquese en la carpeta o el disco donde desee colocar la copia. (d) En el menEdicin,hagaclicenPegar.(TambinpuedehacerclicenconoPegarenlabarradeherramientas). Notas:(i)PuedeseleccionarsemsdeunarchivoocarpetaalsostenerlateclaControleirhaciendoclic en los archivos o carpetas a copiar. (ii) Tambin se puede copiar de un computador a otro en un entornoderedlocaloderedremota(porejemplo,Internet),abriendolacarpetaMisSitiosdeRed. Abrir un archivo o una carpeta: (a) Haga doble clic en la unidad que contenga el archivo. (b) Haga dobleclicenelarchivooenlacarpetaquedeseeabrir. Mover archivos si los arrastra en lugar de utilizar mens: (a) Haga clic en el archivo o en la carpeta que desee mover (en el panel de detalles). (b) Asegrese de que el lugar al que desee arrastrar el archivo o la carpeta est visible (en el panel arbreo). (c) Arrastre, sosteniendo el clic, el archivo o la carpetahastasudestino,ysueltecuandolaubicacinsealadeseada. Enviar rpidamente 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 continuacin, haga clic en la opcin del destino queapareceenelsubmendesplegado. 2.ENTORNODEDISEOENVBA: 2.1 En la siguiente figura se muestran los componentes principales del entorno de diseo de aplicacionesdeVisualBasicforApplications(VBA).ConestoselementosseelaboranlosproyectosVisual Basicenelcurso.(Paramsdetallesvaselasnotasdeclase,oapuntes).

Pgina2de16

Fundamentosdeprogramacin,Prctica#2

2.2AlgunasoperacionestpicasconelentornodedesarrolloenVBAson: Ocultar/Visualizar diversos componentes como a caja de controles, la barra de herramientas, la ventanadepropiedades,laventanaexploradoradeproyectos(exploradordeproyectos),elformulario. Ubicarcontrolessobreelformulariodediseo. Establecerpropiedadesalformularioyalosdiversoscontrolesubicadossobrel. Asociar programas (procedimientos, subprogramas, rutinas, funciones) con los diversos controles (objetos)queaslorequieran. 3.EJERCICIO1: El ndice de Masa Corporal IMC de una persona puede calcularse de manera sencilla mediante la siguientefrmula:

IMC =

peso(en kgs ) altura 2 (en metros )

Asporejemplo,unapersonaquepese65kgs.ymida1.72mts.tendraunIMCde21.97(65/1.722) DesarrollarunproyectoenVBAparacalcularestevalor. SOLUCIN: 3.1ActivarelentornodetrabajoExcelVBAenExcel2007(Vista)


Pgina3de16 Fundamentosdeprogramacin,Prctica#2

Para activar el entorno de trabajo ExcelVBA 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 mquinaenlacualseesttrabajando).AparecerlaventanaoescritorioprincipaldeExcel.Porejemplo, enlafigurasiguientesemuestraelescritorioprincipaldeExcel2007(versinenespaol). La flecha roja sealalaopcinyel conode VisualBasic, dentrode la ficha (pestaa o lengeta) llamada Programador.

Esta ficha se activa haciendo clic en el botn de Windows (fecha verde) y haciendo de nuevo clic en la pestaa Opciones de Excel (parte inferior de la figura 1.4, pgina siguiente), seala con la flecha roja. Al hacer clic en la pestaa Opciones de Excel se llega al panel de dilogo mostrado en la figura 1.5. All se debe activar la opcin Mostrar ficha Programador en la cinta de opciones. A partir de esta activacin, siempre se mostrar la ficha Programador, a partir de la cual seaccesael entornode VBA. Sin embargo, independientemente de si la ficha Programador est o no activada, siempre es posible llegar al entorno VBApulsandolasteclasAltF11alavez(sostengalateclaAltypulselateclaF11).

Microsoft Office, Microsoft Office Excel son marcas registradas de Microsoft Corporation (http://www.microsoft.com/spanish/) Pgina4de16 Fundamentosdeprogramacin,Prctica#2

Pgina5de16 Fundamentosdeprogramacin,Prctica#2

3.2ActivarelentornodetrabajoExcelVBAenExcel2003(XP) SienvezdetenerinstaladoelWindowsVistaconsurespectivoOfficesetienela versinanterior(Office 2003)sedebeprocederdelasiguientemanera.PrimerodebepermitrselealExcelejecutarmacros,para estoiraHerramientasMacroSeguridadcomosemuestraenlaFigura1.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 confirmacin 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 podrn ser ejecutadas sin confirmacin 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 opcinMedioparaevitarqueotrasmacrosexternaspuedanhaceralgunaoperacinnodeseada.

Pgina6de16

Fundamentosdeprogramacin,Prctica#2

3.3ElaborarelproyectoenVBA Una vez se define el nivel de seguridad apropiado (slo se debe hacer una vez en el equipo siempre y cuando luego no se cambie esta configuracin) sepuede proceder a crear el proyecto enVBA. Para esto SeseleccionaHerramientasmacroEditordeVisualBasiccomosemuestraenlaFigura1.8.Unaforma abreviadadehaceresto,aligualqueenExcel2007esoprimirlasteclasAlt+F11.

Pgina7de16

Fundamentosdeprogramacin,Prctica#2

Luego de entrar al entorno de programacin VBA se puede iniciar diseando 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 derechadelaFigura1.10.Tambindebeaparecerelcuadrodeherramientas(quesemuestraenlaparte izquierda de la misma figura) donde se encuentran los controles tpicos para desarrollar una interfaz. La explicacindecadaunosepresentaacontinuacin. Control Descripcin Formulario(form) Correspondealformulario(ventana)ens Etiqueta(label) Sirve generalmente para agregar texto a manera de ttulos, anotaciones,etc. Cuadro de texto Sirve generalmente para las operaciones de lectura/escritura de las (textbox) variablesdeentradaysalidarespectivamente Botn (command Sirvepararealizar alguna operacinbienseadelecturaoescriturade button) datos,detransformacin,ocualquiercombinacindeestas Marco(frame) Puede servir para disear el formulario de manera ordenada subdividiendo la ventana total en diferentes secciones. Por ejemplo: seccin de lectura de variables de entrada, seccin de escritura de variables de salida, seccin de operaciones (botones). La utilizacin deestecontrolesopcional.

Pgina8de16

Fundamentosdeprogramacin,Prctica#2

Tngase en cuenta que cualquiera de estos controles tiene una serie de propiedades que pueden ser modificadasusandolaventanadepropiedadesquesalealdarleclicderechoalcontrolqueseagregueal formulario y seleccionando propiedades, o mediante la opcin Ver Ventana de propiedades (o abreviado como F4) y sealando el control correspondiente (el formulario en s mismo es tambin 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 propiedadescorrespondenauncontroltipolabelquesedescribiracontinuacin). Propiedad Descripcin (Name) Identificador nico que tendr el control dentro del proyecto. Se recomienda utilizar nombres mnemotcnicos que consideren tanto el tipo de control como la funcin asociada (por ejemplo botonAceptar, textoResultados,etiquetaTitulo,etc.) Backcolor Colordefondo Caption Texto del control, aplica para todos los controles excepto para el cuadro de texto Font Propiedadesdeltexto:tipodeletra,tamao,estilosyefectos Forecolor Colordeltexto Text Textoqueapareceenelcontrolcuadrodetexto *Nota:Estaspropiedadespuedenserdefinidastantoentiempodediseo(comoenestosejemplos)oen tiempodeejecucin(demaneradinmica)alinteractuarconelusuario.

Pgina9de16

Fundamentosdeprogramacin,Prctica#2

Teniendoencuentaloanterioresfcildisearunainterfazparaelproblemaplanteadocomosemuestra enlaFigura1.12.

Pgina10de16

Fundamentosdeprogramacin,Prctica#2

marcoEntrada textoPeso textoEstatura

etiquetaPeso etiquetaEstatura

marcoResultados etiquetaIMC textoIMC

marcoOpciones

botonCalcular

botonSalir

Una vez definida la interfaz se procede a pasar el algoritmo al cdigo correspondiente en VBA. Para hacer esto se puede seleccionar Ver Cdigo (o abreviado como F7) o dando doble clic en cualquier partedelformulario.

Como el VBA es un entorno de programacin estructurado basado en eventos (ciertas operaciones se llevan a cabo cuando cierto evento ocurre sobre un control) el cdigo se distribuye como se muestra en la figura 1.13. As por ejemplo, al dar doble clic en el control botonCalcular aparecera en el entorno de programacinelcursorsituadoalinteriorde:
Pgina11de16 Fundamentosdeprogramacin,Prctica#2

PrivateSubbotonCalcular_Clic() EndSub Esto significa que lo que se escriba al interior de esas instrucciones ser lo que se ejecutara cuando al correr el programa se de clic sobre el botn Calcular. Ntese que en esa instruccin aparece botonCalcular_Clic() y noCalcular_Clic() pues elnombredel control (quesedefini 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 calcularelIMCdeunapersona.Sihiciramoseldiagramadecaja respectivodeesteproblemasera algo como: Leerpeso Leerestatura IMC=peso/estarura2 MostarIMC 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 cdigo deben ser declaradas, esto con el fin que el lenguaje de programacinsepadequtipodedatosescadauna.UnlistadodecmosedeclaranenVBAlostiposde datosmsimportantesvistosenlaclasetericasepresentaacontinuacin: Tipodedato SintaxisenVBA EnteroCorto Integer EnteroLargo Long RealSimple Single RealDoble Double Cadenadetexto String Lgico Boolean Luegodeladeclaracindevariablesaparece: 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 ejecucin. Con la funcin Val() se asigna el valor numrico de lo digitado; si se digitan nmeros obviamente los valores asignados corresponden a esos nmeros;sisedigitanletrasyotroscaracteres,seasignarcero. Luegoapareceelclculodelavariabledesalida:IMC=peso/(estatura^2)
Pgina12de16 Fundamentosdeprogramacin,Prctica#2

Y por ltimo aparece la instruccin: textoIMC.Text = IMC, que lo que hace es precisamente poner en la cajadetextotextoIMCelvalorcalculado. Como en la interfaz diseada tambin aparece un botn para salir, es necesario agregar el cdigo correspondiente. En VBA la instruccin 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 instruccin se encuentra al interior de Private Sub botonSalir_Clic(), esto significa que cuando al ejecutar el programa se de clic sobreesebotonelprogramaterminara(secerraralaventana). 4.EJERCICIO2: Teniendo en cuanta lo aprendido hasta el momento, realice un proyecto en VBA para leer dos valores numricos y tener la opcin de realizar sobre ellos las operaciones aritmticas bsicas. Una posible interfazsemuestraenlaFigura1.14.

Ntesequeademsdelosbotonesparalas4operacionesaritmticasbsicasyelbotndesalir,haydos botones adicionales: Leer Datos y Borrar para hacer el programa un poco ms completo. Como se muestra en la parte media de la figura 1.15 el botonBorrar lo nico que hace es poner el contenido de loscuadrosdetextovacos. Para este problema comosetienen varias y no solouna operacin (a diferencia delejercicio anterior)es convenientehacerdoscosas: Primero, las variables (tanto de entrada como de salida) no se definen al interior del cdigo de cada operacin 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 cdigo la opcin General que aparecedeprimeraenlalengetaquesaleenlapartesuperiorizquierdadeesaventana.Loque se escriba all aparecer aparte de la programacin 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) sern comunes para todos los controles y por tanto no es necesario declararlasencadauno. Segundo, y tendiendo en cuenta lo anterior, la lectura de los datos de entrada no se hace en cada operacin, si no que se tiene un botn especfico (botonLeer) para hacerlo como se
Pgina13de16 Fundamentosdeprogramacin,Prctica#2

muestra en el segundo bloque presentado en la figura 1.15. Esto sirve para no tener que copiar el mismo cdigo en todos losbotonesde operaciones. Nteseque al final aparece la instruccin Msgbox Datos leidos. Esta sirve para que aparezca una ventana de informacin con el texto correspondiente.

Nota: Un apstrofe(o comilla simple) indica un comentario. Los comentarios son ignorados a tiempo de ejecucin; slo sirven para explicar (documentar) ciertas partes de un cdigo como se muestra en la parte final de la figura 1.15 (en botonSalir). Normalmente en VBA tales comentarios se muestran en verde(salvoquesecambielaconvencindecoloresdeleditor). Aparte de la definicin (general) de variables y de los botones de Leer Datos, Borrar y Salir se encuentranlosbotonesparalas4operacinbsicas.Cadaunotendruncdigomuysimplecomoelque se muestra a manera de ejemplo para botonSumar en la figura 1.15. LA nica operacin que tiene una restriccin especial es la de dividir, puesto que si B toma el valor de 0 no se puede realizar (divisin indefinida).ParatenerencuentaestasituacinesposibleemplearlainstruccinSIDELOCONTRARIO FINSI,cuyatraduccinaVBAsepresentaenlafigura1.16

Pgina14de16

Fundamentosdeprogramacin,Prctica#2

Ntese en este cdigo que si B es diferente de 0, la operacin se realiza normalmente y el resultado se imprime,mientrasqueencasocontrario(siBescero)semostraraunmensajedeinformacinindicando lasituacin. 5.EJERCICIOSADICIONALES: a) Puede extenderse los conceptos vistos en la presente prctica para disear y programar una calculadorasencillacomolailustradaenlafigura1.17.

b) Efectuar, por lo menos otra sesin prctica. Por ejemplo, disear una interfaz para leer tres valores numricos, correspondientes a los lados de un tringulo, y calcular el rea del tringulo empleando la frmula de Hern de Alejandra [5], siendo A, B, C los lados y S el semipermetro (semisuma de los lados): AREA = S ( A A)( S B)( S C ) REFERENCIAS:
Pgina15de16 Fundamentosdeprogramacin,Prctica#2

Walkenbach, J.: The Spreadsheet Page/Excel Developers Tips for VBA users, JWalk & Associates, Inc. http://www.jwalk.com/ss/(visitaenJunio21de2008). AlvarezMontoya, William: Fundamentos de Programacin con VBA y Excel, en la pgina web http://virtual2.unalmed.edu.co/moodle. Chapra,StevenC.;Canale,RaymondP.:NumericalMethodsforEngineers,withsoftwareapplications, fourthedition,McGrawHill,2002,chapters1,2. HerndeAlejandra,enGacetillamatemticahttp://www.arrakis.es/~mcj/heron.htm Barker, R.M.; Harris, P.M.; Parkin, G.I.: Developing Advanced Scientific Engineering Spreadsheet Applications, December 2006, The UKs National Measurement Laboratory, http://www.npl.co.uk/ (visitadaenJunio22de2008). Walkenbach, J.: Microsoft Office Excel 2007 VBA Programming for DUMMIES, Wyley Publishing, Inc., 2007. (puede leerse online en http://www.docstoc.com/docs/documentpreview.aspx?doc_id=1659168; captulos:3,7,10,14,15,16,17,22.

Pgina16de16

Fundamentosdeprogramacin,Prctica#2

Anda mungkin juga menyukai