You are on page 1of 46

PONTIFICIA UNIVERSIDAD CATLICA DEL PER ESTUDIOS GENERALES CIENCIAS

INTRODUCCIN A LA COMPUTACIN TERCER LABORATORIO DESARROLLO DE PROGRAMAS 1

Coordinadores del Laboratorio

2012

T abla de Contenido
1. MICROSOFT ACCESS 2010 .................................................................................................................. 4 1.1. INTRODUCCIN ................................................................................................................................... 4 1.2. ACCESS ES UN SABD............................................................................................................................. 4 1.3. TABLAS, CAMPOS Y REGISTROS ............................................................................................................... 4 1.4. CLAVE PRINCIPAL .................................................................................................................................. 5 1.5. ESTRUCTURA DE ARCHIVOS EN ACCESS .................................................................................................. 6 1.6. CREACIN DE UNA BASE DE DATOS ...................................................................................................... 6 1.6.1. Base de Datos en Blanco .............................................................................................................. 6 1.6.2. A partir de una plantilla ................................................................................................................ 6 1.7. CREACIN DE TABLAS ........................................................................................................................... 7 1.7.1. En Diseo de tabla ....................................................................................................................... 7 1.7.2. Utilizando la Plantilla de tabla ....................................................................................................... 7 1.7.3. Usando Diseo de Tabla ............................................................................................................... 8 1.7.4. Usando Lista de SharePoint ........................................................................................................... 8 1.8. RELACIONAR TABLAS ............................................................................................................................. 8 1.9. INTEGRIDAD REFERENCIAL: .................................................................................................................... 9 1.10. CREACIN DE CONSULTAS ............................................................................................................... 10 1.10.1. En Diseo de consultas ............................................................................................................. 10 1.10.2. Utilizando el asistente para consultas ........................................................................................ 12 1.11. USO DE OPERADORES Y COMODINES EN ACCESS ................................................................................ 12 1.11.1. Operadores de comparacin ..................................................................................................... 12 1.11.2. Uso de comodines .................................................................................................................... 12 1.12. CREACIN DE FORMULARIOS ............................................................................................................ 13 1.12.1. Utilizando el asistente ............................................................................................................... 13 1.13. EJERCICIO ......................................................................................................................................... 14 2. VISUAL BASIC FOR APPLICATION - VBA .................................................................................... 17 3. CREACIN DE UN LIBRO DE EXCEL ............................................................................................ 18 3.1. SIN MACROS........................................................................................................................................ 18 3.2. CON MACROS ..................................................................................................................................... 18 3.3. OTROS FORMATOS.............................................................................................................................. 19 4. PREPARNDONOS PARA TRABAJAR CON EL EDITOR DE VISUAL BASIC .................... 19 4.1. INSERTAR FICHA PROGRAMADOR ........................................................................................................ 19 4.2. EL EDITOR DE VISUAL BASIC ......................................................................................................... 20 4.2.1. Men ......................................................................................................................................... 22 4.2.2. Barra de Herramientas ............................................................................................................... 22 4.2.3. Explorador de Proyectos .............................................................................................................. 23 4.2.4. Cdigo ........................................................................................................................................ 23 4.2.5. Ventana Inmediata ..................................................................................................................... 24 4.2.6. Ventana de Propiedades .............................................................................................................. 24 4.3. LECTURA Y ESCRITURA DE DATOS ............................................................................................. 24 4.3.1. Lectura de datos desde celdas de Excel ....................................................................................... 24 4.3.2. Escritura de datos desde celdas de Excel ..................................................................................... 25 4.3.3. Forma Simple: ............................................................................................................................ 26 4.3.4. Lectura y Escritura desde VBA ..................................................................................................... 27 4.4. OPERACIONES ARITMTICAS EN VBA ......................................................................................... 27 5. CREACIN DE SUBPROGRAMAS ................................................................................................... 28 5.1. REGLAS PARA NOMBRAR SUBPROGRAMAS ............................................................................................. 29 5.2. COMENTARIOS EN LOS SUBPROGRAMAS ............................................................................................... 29 5.3. CREACIN DE PROCEDIMIENTOS ......................................................................................................... 29 5.3.1. Creacin de Procedimientos Mediante el Uso del VBE .................................................................. 29 5.3.2. Ejecucin de un procedimiento .................................................................................................... 30 5.3.3. Mediante el Uso de Macros ........................................................................................................ 30 5.3.4. Ejecucin de una macro .............................................................................................................. 33

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

5.4. CREACIN DE FUNCIONES .................................................................................................................. 34 5.4.1. Funciones VBA ............................................................................................................................ 34 5.4.2. Funciones de Excel ...................................................................................................................... 35 5.4.3. Funciones personalizadas ............................................................................................................ 35 6. EJERCICIO ................................................................................................................................................ 40 6.1. PROBLEMA DEL LPIZ .......................................................................................................................... 40 6.1.1. Definicin y Anlisis .................................................................................................................... 41 6.1.2. Implementacin (Codificacin) ..................................................................................................... 41 6.1.3. Resultado ................................................................................................................................... 42 6.2. CHOQUE DE PARTCULAS .................................................................................................................... 42 6.2.1. Definicin y Anlisis .................................................................................................................... 43 6.2.2. Implementacin (Codificacin) ..................................................................................................... 43 6.2.3. Resultado ................................................................................................................................... 44 7. EJERCICIO PROPUESTO ..................................................................................................................... 44 8. BIBLIOGRAFA ....................................................................................................................................... 45 9. ACTUALIZACIN: ................................................................................................................................ 46

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

1. Microsoft Access 2010


1.1. Introduccin
Su principal funcin es ser una potente base de datos, capaz de trabajar en s misma o bien establecer conexin hacia otros lenguajes de programacin, tales como Visual Basic 6.0 o Visual Basic .NET. Access permite el ingreso de datos de tipo: Numrico, Texto, Fecha, S/No, OLE, Moneda, Memo y Boolean. Por medio de esta herramienta se puede desarrollar aplicaciones completas, pues trae consigo las herramientas necesarias para el diseo y desarrollo de formularios para el ingreso y manejo de datos, adems permite consultar, visualizar e imprimir la informacin requerida. Su funcionamiento se basa en un motor llamado Microsoft Jet, y es posible desarrollar pequeas aplicaciones autnomas formadas por formularios Windows y cdigo VBA (Visual Basic para Aplicaciones). Entre las principales funcionalidades de Access se encuentran: Crear tablas de datos indexadas. Modificar tablas de datos. Crear relaciones entre tablas (bases de datos relacionales). Crear consultas y vistas. Elaborar consultas con referencias cruzadas. Elaborar consultas de accin (INSERT, DELETE, UPDATE). Crear Formularios. Crear Informes. Elaborar llamadas a la API de windows. Elaborar secuencias de Interaccin con otras aplicaciones que usen VBA (resto de aplicaciones de Microsoft Office, Autocad, etc.). Crear macros. Access es un software de gran difusin, especialmente en el contexto de pequeas empresas (PYMES), debido a que las bases de datos de estos negocios no requieren software de excesiva potencia, y se integra perfectamente con el resto de aplicaciones de Microsoft permitiendo crear pequeas aplicaciones con unos pocos conocimientos de programacin. Uno de sus mayores inconvenientes es que no es multiplataforma, pues slo est disponible para sistemas operativos de Microsoft, y adems no permite transacciones. Su uso es inadecuado para grandes proyectos de software que requieren tiempos de respuesta crticos o muchos accesos simultneos a la base de datos. Para bases de datos de gran volumen de datos o de usuarios es recomendable usar otros sistemas como Microsoft SQL Server, MySQL u Oracle entre otros.

1.2. Access es un SABD


Se denomina Sistema de Administracin de Bases de Datos SABD DBMS (Data Base Management System) a las aplicaciones que administran bases de datos, es decir, se encargan de almacenar y gestionar informacin. La estructura bsica de esta informacin que manejan los SABD son las tablas, las cuales se pueden asemejar con las listas de datos en Excel. Para una mejor gestin de la informacin y para reducir el nmero de datos, las tablas se relacionan. Por ejemplo, si se desea tener listas con los alumnos de cada curso, en lugar de incluir el nombre y apellidos de todos los alumnos en la lista de cada curso, bastar con almacenar sus cdigos en cada asignatura. El cdigo de alumno en la tabla cursos sirve para establecer una relacin con la tabla que contiene el nombre y los apellidos. Debido a esta caracterstica relacional, se dice que Access es un sistema de administracin de bases de datos relacionales.

1.3. Tablas, campos y registros


Los tres conceptos bsicos de una base de datos son: las tablas, los campos y los registros. A continuacin se revisar cada uno de estos conceptos haciendo referencia a las listas de datos en Excel. Una tabla es una coleccin de datos con la misma estructura que una lista en Excel. En un hoja de clculo los datos se disponen en columnas, y cada columna siempre guarda el mismo tipo de dato en todas las filas, por ejemplo: un cdigo de alumno, un nombre, entre u otros. De manera similar una tabla consta, pues, de un cierto nmero de campos, y en cada uno de los ellos se guarda un dato, que puede ser numrico, alfanumrico, fecha, moneda, si/no, memo entre otros. Un campo es cada una de las columnas de la tabla y el nombre de la columna es el nombre del

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

campo. Un registro es cada una de las filas de la tabla, y est formado por el dato de cada uno de los campos almacenados en una misma operacin.

Tabla: Alumno. Campos: CodigoAlumno, NombreAlumno, ApellidoAlumno, Direccin, Telfono, Ciudad, Pas. Registros: Esta tabla consta de 3 registros, es decir, cada registro contiene los datos de cada uno de los alumnos (fjese en las filas de la tabla). Adems, cada campo debe indicar su tipo de dato, y este debe ser acorde aquello que se almacenar en l, tal como se ve en el siguiente ejemplo:

De esta manera una base de datos es un conjunto de tablas que se utilizan para gestionar un determinado tipo de informacin. Y est constituida por la estructura de informacin (tablas, campos y tipo de dato del campo) y la informacin en ella contenida. Aunque es frecuente denominar a Access como una base de datos, esto no es exacto, Access es una aplicacin de gestin de base de datos. Es la misma diferencia que existe entre un procesador de textos como Word y un documento de Word.

1.4. Clave Principal


Una clave principal (llave principal o primary key) es aquel valor que identifica de manera exclusiva (nica) cada registro de una tabla, esta clave puede estar formada por uno o ms campos (columnas). Adems, una clave principal no puede permitir valores Nulos, siempre debe existir un dato, y siempre debe ser exclusivo. Una clave principal se utiliza para poder relacionar los datos entre una tabla y otra indicando equivalencias.

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

Por ejemplo: En la tabla Alumno, se debe identificar cul es el campo nico o clave principal que identificar a cada registro de esta tabla: CdigoAlumno. Para seleccionar la clave principal, se tiene dos opciones: a. Seleccionar la fila o filas que forman que contienen los campos elegidos como clave principal y, luego en la Cinta de Opciones pulsar la ficha Diseo y en el grupo Herramientas hacer clic en la opcin clave principal. b. Seleccionar la fila fila o filas que forman que contienen los campos elegidos como clave principal, luego hacer clic derecho y escoger la opcin de clave principal del men desplegable.
Es importante seleccionar la clave principal porque es el campo que nos va a permitir relacionar las tablas. Nota: Por defecto M. Access define una clave principal para una nueva tabla (un campo llamado Id). Si no desea que dicho campo sea la clave principal, debe eliminar dicho campo y luego debe crear el o los campos que desee que sean la clave principal de la tabla.

1.5. Estructura de archivos en Access


Una base de datos consta de distintos objetos: tablas, ndices, consultas, relaciones, informes, formularios, ente otros. Todos los objetos de una base de datos se almacenan fsicamente en un slo archivo. Por ello en Access, se identifica una base de datos con el archivo en el que se almacena. Este archivo tiene la extensin .accdb. En el directorio en el que se encuentra el archivo .accdb, Access crea otro archivo con el mismo nombre y la extensin .laccdb. Este es un archivo que utiliza Access para el control de los bloqueos de registros de la base de datos cuando se produce acceso simultneo de varios usuarios. Al realizar la copia de seguridad de la base de datos no es necesario este archivo. Tampoco importa borrarlo si ningn usuario tiene abierta la base de datos. Esta estructura de archivos de Access es propia de esta aplicacin. Otros formatos de base de datos utilizan otros criterios.

1.6. Creacin de una Base de Datos 1.6.1. Base de Datos en Blanco


a. b. c. d. Pulsar el botn de Office y seleccionar la opcin Nuevo En la ventana Introduccin a Microsoft Access, seleccionar la opcin Base de datos en blanco Ingresar el nombre de archivo con el que se desea grabar la base de datos y seleccionar la carpeta en la que se trabajar. Presionar el botn Crear.

1.6.2. A partir de una plantilla


a. b. c. d. e. Pulsar el botn de Office y seleccionar la opcin Nuevo En la ventana Introduccin a Microsoft Access, en la seccin de Plantillas destacadas en lnea, seleccionar el modelo que desee. Aqu encontrar la opcin de crear bases de datos de diferentes tipos. Escoger uno de los tipos mostrados. Ingresar el nombre de archivo con el que desea grabar la base de datos y seleccionar la carpeta en la que se trabajar. Presionar el botn Descargar. Aqu deber escoger: las tablas, los campos, los formatos de los formularios y las consultas que desea que muestre su base de datos.

Al finalizar la creacin de la base de datos se mostrar el entorno de Access con las diferentes pestaas en la cinta de opciones que permitirn el resto del trabajo.

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

1.7. Creacin de tablas

1.7.1. En Diseo de tabla


a. b. c. En la Cinta de opciones pulsar la ficha Crear y en el grupo Tablas hacer clic en la opcin Diseo de Tabla. Ingresar el nombre y el tipo de dato de cada campo que tendr la tabla. Seleccionar los campos que componen la clave principal. Para hacerlo deber seleccionar toda la fila que lo compone desde el extremo izquierdo del Nombre del campo.

d. e.

Una vez ingresados los campos presionar el botn Guardar de la Barra de herramientas de acceso rpido. Ingresar el nombre de la tabla y presionar el botn Aceptar.

1.7.2. Utilizando la Plantilla de tabla


a. En la Cinta de opciones pulsar la ficha Crear y en el grupo Plantillas hacer clic en la opcin Elementos de aplicacin. En la seccin Inicio Rpido se encuentran las diversas plantillas de tablas disponibles.

b. c.

Escoger una de las tablas ejemplo (Contactos, Tareas, etc.) Indicar el nombre de la tabla.

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

d.

e. f.

Si usted desea puede modificar y/o agregar campos a la tabla creada entrando a la opcin Vista de Diseo. Para ir a la Vista de Diseo, seleccionar la tabla creada, haga clic derecho y seleccione la opcin Vista de Diseo. Una vez ingresados los campos presionar el botn Guardar de la Barra de herramientas de acceso rpido. Ingresar el nombre de la tabla y presionar el botn Aceptar.

1.7.3. Usando Diseo de Tabla


a. b. c. d. e. En la Cinta de opciones pulsar la ficha Crear y en el grupo Tablas hacer clic en la opcin Diseo de Tabla. Ingresar el nombre y el tipo de dato de cada campo que tendr la tabla. Seleccionar los campos que componen la clave principal. Una vez ingresados los campos presionar el botn Guardar de la Barra de herramientas de acceso rpido. Ingresar el nombre de la tabla y presionar el botn Aceptar.

1.7.4. Usando Lista de SharePoint


a. b. c. En la Cinta de opciones pulsar la ficha Crear y en el grupo Tablas hacer clic en la opcin Lista de SharePoint. Escoger una de las tablas ejemplo (Contactos, Tareas, Problemas, Eventos, Personalizados o Lista de SharePoint existente). Llenar los campos solicitados en el cuadro de dilogo que se muestra y pulsar Aceptar.

1.8. Relacionar tablas


En bases de datos es comn que las tablas guarden informacin asociada entre una y otras. Las relaciones entre tablas nos permiten evitar el ingreso de datos repetidos sin que eso signifique la prdida de informacin. Por ejemplo si se tiene por un lado la lista de los alumnos matriculados y por otro lado la lista de los cursos que se dictan en el semestre, una tercera tabla deber guardar la relacin entre ambas y almacenar los registros que vinculen a los alumnos con cada curso que llevan. De acuerdo a esta estructura si un alumno lleva 5 cursos entonces la tabla que guarda la relacin deber contener 5 registros para ese alumno.

Para relacionar dos tablas debe realizar los siguientes pasos: a. En la Cinta de Opciones pulsar la ficha Herramientas de bases de datos y en el grupo Relaciones hacer clic en la opcin Relaciones. b. Seleccionar las tablas que se desean relacionar. c. Presionar el botn Agregar y luego presionar el botn Cerrar. d. Seleccionar el campo o campos que componen la llave primaria de la tabla maestra, es decir de aquella tabla que contiene toda la informacin respecto a esta llave (para el ejemplo se seleccionar el campo cdigo de la tabla Alumnos), manteniendo la seleccin dirigirse hacia el campo de la tabla al cual se desee relacionar, y soltar la seleccin sobre este campo (para el ejemplo se soltara sobre el campo alumno de la tabla CursoxAlumno). e. En ese momento se muestra grficamente la equivalencia entre campos que se quiere realizar: Tabla Alumnos: Cdigo, Tabla CursosxAlumno: Cdigo. Cuando se trata de llaves primarias en el borde de la tabla aparecer el cono de una llave al costado del campo llave primaria o campo nico.

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

f.

Por ltimo, aparecer una ventana que mostrar el tipo de relacin que desea manejar.

Una vez establecida la relacin, cada vez que se ingresen datos en la tabla relacionada se verificar si estos estn en la tabla maestra (para el ejemplo cada vez que se ingresen datos a CursoxAlumno verificar que exista el curso y el alumno que se desea registrar.)

Identidad Referencial

1.9. Integridad Referencial:


Al disear una base de datos, se divide la informacin en muchas tablas que guardan informacin de diversos temas, todo ello con la finalidad de minimizar la redundancia de los datos. El propsito de la integridad referencial es evitar los registros hurfanos (sueltos o aislados) y mantener las referencias sincronizadas para que esta situacin hipottica no ocurra nunca. Para exigir la integridad referencial, es preciso habilitarla para una relacin de tabla. Una vez habilitada, Access rechazar todas las operaciones que infrinjan la integridad referencial para esa relacin de tabla. Para poder habilitar la integridad referencial debe: a. b. c. Seleccionar los campos que se quiere relacionar, de las tablas correspondientes, para el ejemplo sern el campo Cdigo de la tabla Alumnos y el campo Alumno de la tabla CursoxAlumno. En la Cinta de Opciones pulsar la ficha Diseo y en el grupo Herramientas hacer clic en la opcin Modificar Relaciones. Activar la opcin de Exigir Integridad Referencial.

El procedimiento anterior se debe seguir para cada par de campos relacionados en la base de datos. Tal como se muestra a continuacin:

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

d.

Finalmente se tendr habilitada la integridad referencial en todas las relaciones, as:

1.10. Creacin de Consultas


Las consultas permiten visualizar los datos de las tablas de acuerdo al orden (ascendente) y/o a los criterios escogidos (por ejemplo mostrar los nombres que empiezan con la letra A).

1.10.1. En Diseo de consultas


a. b. c. d. e. f. En la Cinta de opciones pulsar en la ficha Crear y en el grupo Consultas hacer clic en la opcin Diseo de consulta. Seleccionar la tabla que se desea consultar. Presionar el botn Agregar y luego el botn Cerrar. Seleccionar los campos (datos) de la tabla que se desean consultar y los criterios a aplicar. Seleccionar el botn Guardar de la Barra de herramientas de acceso rpido. Ingresar el nombre de la consulta y presionar el botn Aceptar.

Ejemplo1: Se desea mostrar todos los alumnos que se llamen Carlos.

Solucin: La tabla a usar es Alumnos. El campo nombre debe coincidir con la cadena Carlos, entonces el criterio en la consulta ser dicha cadena.

La tabla Alumnos contiene los siguientes datos:

La consulta ser:

10

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

Al ejecutar la consulta nos mostrar el siguiente resultado:

Ejemplo2: Se desea mostrar todos los cursos que se empiecen con la letra C.

Solucin: La tabla a usar es Cursos. El campo nombre debe coincidir inicialmente con la cadena C y el resto de caracteres puede ser cualquiera, por ello es necesario utilizar un comodn (Ver en el punto 3.11.2 Uso de Comodines), entonces el criterio en la consulta ser dicha cadena, seguida del comodn *, as: C* La tabla Cursos contiene los siguientes datos:

La consulta ser:

Al ejecutar la consulta nos mostrar el siguiente resultado:

11

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

1.10.2. Utilizando el asistente para consultas


a. b. c. d. e. f. En la Cinta de opciones pulsar en la ficha Crear y en el grupo Consultas hacer clic en la opcin Asistente para consultas. Seleccionar el tipo de consulta que desee obtener. Seleccionar la tabla que se desea consultar. Seleccionar los datos de la tabla que se desean consultar y criterios a aplicar. Presionar el botn Siguiente. Ingresar el nombre de la consulta y presionar el botn Finalizar.

1.11. Uso de operadores y comodines en Access 1.11.1. Operadores de comparacin


Los operadores de comparacin se usan para contrastar valores y devolver un resultado que sea verdadero (true), falso (false) o nulo. Estos se pueden usar en la seccin de criterios de las consultas, dependiendo de lo que se desee.

1.11.2. Uso de comodines


Los caracteres comodines se utilizan como sustitutos de otros caracteres cuando se busca un valor y se cumple alguna de las siguientes condiciones: Slo se conoce parte del valor. Se buscan valores que empiezan con una cierta letra o que coinciden con un modelo. Los caracteres comodines estn concebidos para ser utilizados con campos que tienen tipo de datos texto. A veces, pueden ser usados con otros tipos de datos, como fechas.
A continuacin se muestra una lista de los caracteres comodines ms importantes y su uso.

Nota:

Si utiliza caracteres comodn para buscar otros caracteres comodn como asterisco (*), interrogacin de cierre (?), signo de nmero (#), corchete de apertura ([) o guin (-), debe incluir el elemento que est buscando entre

12

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

corchetes. Si busca una exclamacin de cierre (!) o un corchete de cierre (]), no es necesario que lo incluya entre corchetes

1.12. Creacin de Formularios


Los formularios son pequeas ventanas que con un diseo amigable nos permiten con gran facilidad ingresar, modificar y eliminar datos de las tablas. A lo largo del curso slo se realizar la creacin de formularios por medio del asistente.

1.12.1. Utilizando el asistente


a. b. En la Cinta de opciones pulsar la ficha Crear y en el grupo Formularios hacer clic en la opcin Asistente para formularios. Seleccionar la tabla con la que desea trabajar y escoger los campos disponibles de dicha tabla que formarn parte del formulario.

c. d.

Presionar el botn Siguiente. Escoger como se desean visualizar los datos.

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

e. f.

Presionar el botn Siguiente. Escoger el formato de presentacin de las ventanas.

g. h.

Presionar el botn Siguiente. Ingresar el nombre del formulario y del sub-formulario si lo tuviera.

i.

Presionar el botn Finalizar.

Nota: Usted debe practicar el uso de formulario con subformulario y formularios vinculados y consultas.

1.13. Ejercicio
La siguiente tarea muestra una base de datos para manejar el registro de alumnos, cursos y profesores de primer ciclo de Estudios Generales Ciencias. Los datos a almacenar sern los siguientes: Tabla Alumnos Campo Cdigo Nombres Apellidos Cdigo Nombre Cdigo Nombres Tipo de dato Nmero Texto Texto Texto Texto Nmero Texto Descripcin Llave principal. Este campo almacenar los cdigos de los alumnos. Este campo almacenar los nombres de los alumnos. Este campo almacenar los apellidos de los alumnos. Llave principal. Este campo almacenar los cdigos de los cursos. Este campo almacenar los nombres de los cursos. Llave principal. Este campo almacenar los cdigos de los profesores. Este campo almacenar los nombres de los profesores.

Cursos

Profesores

14

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

CursosHorarios

Apellidos Curso Horario Profesor

Texto Texto Nmero Nmero Nmero Texto Nmero

AlumnosCursos

Alumno Curso Horario

Este campo almacenar los apellidos de los profesores. Llave principal. Este campo almacenar el cdigo de curso. Llave principal. Este campo almacenar el nmero de horario del curso. Este campo almacenar el cdigo del profesor del horario. Llave principal. Este campo almacenar el cdigo del alumno matriculado en el horario del curso. Llave principal. Este campo almacenar el cdigo de curso. Llave principal. Este campo almacenar el nmero de horario del curso.

a.

Creando la base de datos:

b.

Creando las tablas:

Como podemos observar las tablas AlumnosCursos y CursosHorarios cuentan con una llave primaria compuesta de ms de un campo. Recuerde que esto se consigue seleccionando los campos y haciendo clic en la opcin clave principal. c. Construyendo relaciones:

15

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

16

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

2. VISUAL BASIC FOR APPLICATION - VBA


Al inicio de este manual daremos una breve explicacin acerca del lenguaje de programacin que se usar en el curso, Visual Basic Application (VBA), y en qu forma interacta con Excel. Una vez explicado el lenguaje de programacin, describiremos el Editor de Visual Basic (VBE) que es el entorno de programacin que usar en el curso. Adems, aprender cmo crear y ejecutar procedimientos y funciones en Excel. En el presente manual se toma como convencin el smbolo [ ] para indicar que el contenido dentro de los corchetes es opcional. VBA (Visual Basic para Aplicaciones) es un lenguaje de programacin orientado a objetos, desarrollado por Microsoft. Todos los paquetes de Microsoft Office incluyen este lenguaje. Por tanto, los conceptos de programacin VBA que aprender podrn ser usados no slo en Excel sino tambin en Word, Power Point, Access, entre otros. No confunda VBA con Visual Basic. Visual Basic es un lenguaje de programacin que le permite crear programas ejecutables. Aunque VBA y VB tengan mucho en comn, son diferentes. El uso de VBA en Excel le permitir realizar muchas tareas. Por ejemplo: Automatizar tareas, si por ejemplo usted siempre tiene que preparar un reporte que manualmente le demandara mucho tiempo, con ayuda de VBA podra construir un programa que se encargue de realizarlo. Personalizar las barras de herramientas de Excel con sus propios botones, que ejecuten macros escritas por usted. Desarrollar nuevas funciones que puedan ser usadas en las hojas de trabajo. Incluso, puede crear aplicaciones completas que tengan sus propias ventanas con cajas de dilogo, pantallas de ayuda y muchas otras funciones. Para escribir programas utilizando VBA se utiliza el Editor de Visual Basic (Visual Basic Editor VBE). El cdigo VBA se escribe y se guarda en uno o ms mdulos VBA. Cada mdulo se compone de subprogramas y se guarda dentro el libro de trabajo Excel. En VBA existen 2 tipos de subprogramas: - Procedimientos: un procedimiento es un conjunto de instrucciones que ejecuta un proceso sin devolver valores o devolviendo ms de un valor. Puede ser ejecutado directamente o puede colocarse como una instruccin ms dentro de otro procedimiento. - Funciones: una funcin retorna siempre UN NICO VALOR. Puede ser usada en otro procedimiento o puede ser usada en una frmula en alguna de las celdas de la hoja de trabajo. Excel proporciona ms de 100 clases de objetos. Algunos de stos son: un libro de trabajo, una hoja de clculo, un rango de una hoja de clculo, un grfico, una caja de texto, un botn de comandos, entre otros. Los objetos estn ordenados de manera jerrquica, es decir que un objeto puede contener a otro objeto. As por ejemplo, Excel es un objeto llamado Application y contiene otros objetos, como por ejemplo los workbooks (libros de trabajo) y a su vez stos contienen a los objetos sheets (hojas). A ste orden de los objetos se le conoce como modelo de objeto de Excel. Para referirnos a un objeto que est contenido en otro debemos especificar la jerarqua. Por ejemplo: a. Si deseamos referirnos al libro Libro1, contenido en el objeto Application (Excel), escribiremos: Application.Workbooks(Libro1.xlsx) b. Si quisiramos referirnos a la Hoja Hoja1 del Libro1 escribiremos: Application.Workbooks(Libro1.xlsx).Sheets(Hoja1) Sin embargo, la referencia antes indicada es un poco larga de escribir y en muchas ocasiones no ser necesario indicarla. As, en el segundo ejemplo arriba mencionado, si est trabajando slo con un libro en Excel (Libro1), podra obviar la referencia a los objetos Application y Workbook reducindose la expresin a: Sheets(Hoja1). Asimismo, cada objeto tiene un conjunto de caractersticas propias a las que llamamos propiedades. Por ejemplo, el objeto Sheets tiene la propiedad name, y mediante esta propiedad una hoja adquiere un nombre. Para cambiar la propiedad de un objeto debemos referirnos al objeto y luego a la propiedad. Por ejemplo: sheets(Hoja1).name = Primera

17

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

Adems de las propiedades todos los objetos disponen de mtodos. Un mtodo es una accin que se realiza dicho objeto. Por ejemplo, el objeto sheets tiene el mtodo delete que se encarga de eliminar al objeto. As, para eliminar el objeto Hoja2, escribimos: sheets(Hoja2).delete

3. CREACIN DE UN LIBRO DE EXCEL


De forma predeterminada, los libros de Excel creados en versin Office 2010 se guardan en formato XML, con nuevas extensiones de nombre de archivo que agregan una "x" o una "m" a las extensiones de nombre de archivo que ya conoce de versiones anteriores de Excel. Dentro del mbito del curso nos referiremos a una macro como el conjunto de instrucciones creadas por el usuario en VBA y que pueden ser ejecutadas dentro de una de las aplicaciones del paquete Microsoft Office.

3.1. Sin macros


Para guardar un libro de Excel, que no contiene una macro debe realizar los siguientes pasos: a. b. c. d. En la Cinta de opciones pulsar la ficha Archivo y hacer clic en la opcin Guardar como. Seleccionar la ubicacin en la cual se desea guardar el Libro de Excel. Colocar el nombre del archivo a guardar. Presionar el botn Guardar.

El archivo grabado tendr la extensin xlsx. La "x" significa un archivo XML que NO TIENE MACROS.
Formato Libro de Excel Extensin .xlsx Descripcin
Formato de archivo basado en XML predeterminado de Excel 2010 y Excel 2007. No se pueden almacenar cdigos de macros de Microsoft Visual Basic para Aplicaciones (VBA) ni hojas de macro de Office Excel 4.0 (.xlm).

3.2. Con macros


Para guardar un libro de Excel, que contiene una macro debe realizar los siguientes pasos: a. b. c. d. e. En la Cinta de opciones pulsar la ficha Archivo y hacer clic en la opcin Guardar como. Seleccionar la ubicacin en la cual se desea guardar el Libro de Excel. Colocar el nombre del archivo a guardar. En el campo Tipo seleccionar la opcin Libro de Excel habilitado para macros. Presionar el botn Guardar.

El archivo grabado tendr la extensin xlsm. La "m" significa que se trata de un archivo XML que CONTIENE MACROS. Importante: A partir de esta sesin de laboratorio todo el trabajo se realizar con libros de Excel habilitados para macros, por lo cual se recomienda poner especial cuidado en asegurarse de crear y guardar adecuadamente este tipo de archivos.

Formato Libro de (cdigo) Excel

Extensin .xlsm

Descripcin Formato de archivo basado en XML y habilitado para macros de Excel 2010 y Excel 2007. Almacena cdigo de macros de VBA y hojas de macros de Excel 4.0 (.xlm).

18

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

3.3. Otros formatos


Adicionalmente a los 2 formatos, ya mencionados que se usarn en el desarrollo de los laboratorios, Excel 2010 permite guardar la informacin en gran variedad de formatos como:
Formato Libro de binario Excel Extensin .xlsb xls .xltx Descripcin Formato de archivo binario (BIFF12) de Office Excel 2007. El formato de archivo binario (BIFF8) de Excel 97 - Excel 2003. Formato de archivo de Office Excel 2007 predeterminado para una plantilla de Excel. No puede almacenar cdigo de macros de VBA ni hojas de macros de Excel 4.0 (.xlm). Formato de archivo habilitado para macros de Office Excel 2007 para una plantilla de Excel. Almacena cdigo de macros de VBA u hojas de macros de Excel 4.0 (.xlm). Formato de datos XML. Guarda un libro como un archivo de texto delimitado por tabulaciones para su uso en otro sistema operativo Microsoft Windows y garantiza que los caracteres de tabulacin, los saltos de lnea y otros caracteres se interpreten correctamente. Guarda nicamente la hoja activa. Guarda un libro como un archivo de texto delimitado por comas para su uso en otro sistema operativo Windows y garantiza que los caracteres de tabulacin, los saltos de lnea y otros caracteres se interpreten correctamente. Guarda nicamente la hoja activa. Hoja de clculo de OpenDocument. Puede guardar archivos de Excel 2007 para que puedan abrirse en aplicaciones de hoja de clculo que usen el formato de hoja de clculo de OpenDocument, como Google Docs y Calc de OpenOffice.org. Tambin puede abrir hojas de clculo en formato .ods en Excel 2007. Puede perderse el formato al guardar y abrir archivos .ods. Complemento de Excel 97-2003, un programa complementario diseado para ejecutar cdigo adicional. Admite el uso de proyectos de VBA. Formato de archivo de Excel 4.0 que guarda slo hojas de clculo, hojas de grficos y hojas de macros. Puede abrir un libro en este formato de archivo en Office Excel 2007, pero no puede guardar un archivo de Excel en este formato.
*Informacin obtenida del Sitio Web de Microsoft.

Libro de Excel 97Excel 2003 Plantilla

Plantilla (cdigo) Datos XML Texto (delimitado por tabulaciones)

.xltm .xml .txt

CSV (delimitado por comas)

.csv

Hoja de clculo de OpenDocument

.ods

Complemento Excel 97-2003

de

.xla .xlw

Libro de Excel 4.0

4. PREPARNDONOS PARA TRABAJAR CON EL EDITOR


DE VISUAL BASIC
El Editor de Visual Basic (VBE) es una aplicacin donde usted podr escribir y editar programas que se ejecutarn en su libro de trabajo Excel. Como primer paso debe tener activa en la cinta de opciones de Excel, la ficha Programador. Verifique si es as.

4.1. Insertar Ficha Programador


La ficha Programador le permite acceder al Editor de Visual Basic desde donde se trabajar con VBA. Si esta opcin no aparece en la cinta de opciones debe agregarla realizando los siguientes pasos: a. En la Cinta de opciones pulsar la ficha Archivo y hacer clic en la opcin Opciones de Excel.

19

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

b.

Luego le aparecer una ventana similar a la siguiente:

c. d.

En el bloque de Personalizar Cinta de opciones seleccionar la opcin Programador para activar la visualizacin de esta ficha. Presionar el botn Aceptar.

4.2. EL EDITOR DE VISUAL BASIC


Para activar el Editor de Visual Basic puede usar cualquiera de las dos opciones: a. Presionar las teclas ALT + F11 a la vez y aparecer el Editor de Visual Basic. b. Seleccionar de la ficha Programador. A continuacin ver una barra de herramientas similar a la que se muestra a continuacin:

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

c.

En la seccin Cdigo pulsar el botn de Visual Basic muestra a continuacin:

. Se mostrar una pantalla similar a la que se

d.

Hacer clic en el Men Insertar, y seleccionar Modulo, esto agregar una seccin en la cual podr comenzar a crear sus programas. La ventana ser similar a: 1

3 4

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

En la cual las partes que la componen son: 1.- Men 2.- Barra de Herramientas 3.- Explorador de Proyectos 4.- Cdigo 5.- Ventana Inmediato 6.- Ventana de Propiedades

4.2.1. Men
Contiene opciones parecidas a los mens de otras aplicaciones. Probablemente las opciones de men que ms usar son: Archivo: Donde se encuentran diversas opciones relacionadas al archivo Excel con el que est trabajando, tal vez las que usted usar mayormente son guardar libro, cerrar y volver a Excel. Edicin: Donde se encuentran todas las herramientas necesarias para la edicin del cdigo que vaya a escribir, como copiar, pegar, cortar, deshacer, buscar, reemplazar, entre otras. Ver: Le ayudar a visualizar diversas ventanas del entorno. Por ejemplo, Cdigo, Ventana Inmediato, Ventana Inspeccin, Explorador de Proyectos, Ventana de Propiedades, entre otras. Adems de dar la opcin de visualizar las barras de herramientas del entorno y regresar al libro mediante la opcin Excel (que tiene teclas de atajo Alt + F11) Insertar: Le ayudar a insertar un procedimiento, un formulario, un mdulo, entre otras opciones. Formato: Donde se encuentran todas las opciones para darle formato al programa que vaya a escribir. Por ejemplo, alineacin, espacios, entre otras. Depuracin: Donde se encuentran todas las opciones que le ayudarn a verificar errores en su programa, las opciones que probablemente usar ms son: o Compilar VBAProject: Para verificar si hay algn error de sintaxis en los procedimientos que haya escrito. o Paso a paso por instrucciones: Ejecuta un procedimiento paso a paso, es decir que ejecuta instruccin por instruccin. En caso que dentro del procedimiento se llamara a otro procedimiento, tambin se ejecuta cada una de las instrucciones de este ltimo. o Paso a paso por procedimientos: De manera similar al anterior, ejecuta un procedimiento paso a paso, la diferencia est en que si alguna de las instrucciones es un procedimiento, no se ejecutan cada una las instrucciones que lo compone, por el contrario se toma al procedimiento llamado como una nica instruccin. Ejecutar: La opcin Ejecutar Sub/UserForm (con tecla de atajo F5) le permite ejecutar un procedimiento. En caso quiera parar el procedimiento, puede seleccionar la opcin Restablecer.

4.2.2. Barra de Herramientas Se encuentra ubicada debajo del men y contiene las opciones del men que suelen ser las ms usadas. A continuacin se muestra una parte de dicha barra:

Las opciones que se muestran, de izquierda a derecha son: Ver Microsoft Excel: Opcin del men Ver Insertar User Form: Si da clic en la flechita que est a su costado, observar esta opcin le sirve para insertar un formulario, un mdulo, un mdulo de clase o un procedimiento. Esta opcin corresponde al men Insertar. Guardar libro: Una de las opciones del men Archivo. Cortar: Una de las opciones del men Edicin. Copiar: Una de las opciones del men Edicin. Pegar: Una de las opciones del men Edicin. Buscar: Una de las opciones del men Edicin. Deshacer: Una de las opciones del men Edicin. Rehacer: Una de las opciones del men Edicin. Ejecutar Sub/User Form: Una de las opciones del men Ejecutar.

22

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

Interrumpir: Una de las opciones del men Ejecutar. Restablecer: Una de las opciones del men Ejecutar. Modo de diseo: Una de las opciones del men Ejecutar. Explorador de proyectos: Una de las opciones del men Ver. Ventana de propiedades: Una de las opciones del men Ver. Examinador de Objetos: Una de las opciones del men Ver. Cuadro de Herramientas: Una de las opciones del men Ver. Ayuda.

4.2.3. Explorador de Proyectos


Esta ventana muestra un rbol con todos los libros de trabajo actualmente abiertos en Excel. Si no puede visualizar esta ventana presione las teclas Ctrl + R o use la opcin correspondiente en el men Ver. Para cerrarla, haga clic en el botn que se encuentran en la esquina superior derecha (X). Cuando trabaje en el VBE, cada libro de trabajo que se abre es un proyecto. Puede pensar en un proyecto como una coleccin de objetos agrupados. En la ventana explorador de proyectos, usted puede expandir un proyecto haciendo clic en el signo (+) que se encuentra al lado izquierdo del nombre del proyecto. Si el proyecto ya se encuentra expandido, usted puede contraerlo haciendo clic en el signo (-) que se encuentra al lado izquierdo del nombre del proyecto. Al expandir cada proyecto se muestra al menos una carpeta llamada Microsoft Excel Objetos. Al expandir este nodo se muestra un tem por cada hoja que contenga el libro (cada hoja se considera un objeto en Excel) adems de un objeto adicional llamado ThisWorkbook (que representa al libro con el que estamos trabajando). Si el proyecto tuviera mdulos VBA, el proyecto tendra una carpeta llamada Mdulos. De igual manera, si el proyecto tuviera formularios, habra una carpeta llamada Formularios. Por ejemplo:

El explorador nos muestra un proyecto correspondiente al libro de Excel llamado Libro1, el cual tiene 3 hojas llamadas Hoja1, Hoja2 y Hoja3 respectivamente. Adems, nos muestra la carpeta mdulos la cual contiene el mdulo llamado Mdulo1. No se preocupe si no ha comprendido bien an el concepto de objeto, esto se ir aclarando ms adelante.

4.2.4. Cdigo En esta ventana se encuentra el cdigo en VBA. Para el caso de los laboratorios que desarrollaremos esta ventana siempre debe corresponder a alguno de los mdulos insertados en el proyecto. Para ver el cdigo de un mdulo, debe hacer doble clic sobre el nombre de dicho mdulo en la ventana Explorador de proyectos. A menos que usted haya aadido cdigo VBA, la ventana de cdigo estar vaca como se ve en la siguiente pantalla:

23

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

4.2.5. Ventana Inmediata Esta ventana puede o no ser visible. Si no est visible presione Ctrl + G o seleccione la opcin correspondiente en el men Ver.
Esta ventana se usa para ejecutar, de manera directa, sentencias VBA y para depurar su cdigo. Esta ventana suele ser poco utilizada por las personas que recin empiezan a programar en VBA.

4.2.6. Ventana de Propiedades


Una propiedad es una caracterstica de un objeto tal como el color o el titulo del objeto. Se configura la propiedad para especificar las caractersticas o comportamiento de un objeto. Puede utilizar la ventana de propiedades para configurar las propiedades de un objeto en un tiempo de diseo. Podemos acceder a la ventana de propiedades realizando cualquiera de las siguientes acciones: a. b. c. Seleccionar el botn Ventana de Propiedades de la barra de herramientas estndar. Seleccionar la opcin Ventana de Propiedades en el men Ver. Presionar la tecla F4.

4.3. LECTURA Y ESCRITURA DE DATOS


Durante el desarrollo del curso la lectura y escritura de datos se lleva a cabo mediante la interaccin de los subprogramas de VBE con los valores que se encuentran dentro de una celda o rango de celdas de un libro Excel. En Excel para acceder a los datos de una celda particular se debe recordar un poco la jerarqua de objetos que lo componen: un libro de Excel (workbook) contiene diversas hojas de trabajo (worksheets) y stas a su vez contiene las celdas con distintos valores. Por lo tanto ser a travs de propiedades de las hojas de trabajo que se podrn manipular los datos de las celdas. Existen 2 propiedades que nos permiten acceder a estos datos y son: Range y Cells y son las que usarn mayormente en el desarrollo del curso, las cuales detallamos a continuacin.

4.3.1. Lectura de datos desde celdas de Excel


Usando la propiedad Range: Para leer el valor de un objeto celda Excel por medio de la propiedad Range, slo debemos colocar: valor_a_guardar = Workbooks(Nombre_de_libro).Worksheets(Nombre_de_hoja).Range(CF) Donde, valor_a_guardar es la variable en la cual se almacenar el valor de la celda correspondiente a la columna C, fila F de la hoja Nombre_de_hoja del libro Nombre_de_libro. Por ejemplo: dato=Workbooks(Libro1). Worksheets(Hoja de datos). Range(A1) Guardar en la variable dato el valor contenido en la celda A1 de la hoja de trabajo Hoja de datos del libro Libro1. Usando la propiedad Cells Para leer el valor de un objeto celda Excel por medio de la propiedad Cells, slo debemos colocar: valor_a_guardar = Workbooks(Nombre_de_libro).Worksheets(Nombre_de_hoja).Cells(F,C) Donde, valor_a_guardar es la variable en la cual se almacenar el valor de la celda correspondiente a la fila F, y al ndice de columna C de la hoja Nombre_de_hoja del libro Nombre_de_libro. Para colocar de manera adecuada el ndice de cada columna se debe tener en cuenta que a la columna A por ser primera en orden le corresponde el ndice 1, a la columna B le corresponde el ndice 2, y as sucesivamente. De este modo, para el ejemplo anterior se tendra:

24

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

dato=Workbooks(Libro1). Worksheets(Hoja de datos). Cells(1,1) En este caso debe notar que el nmero 1 se coloca pues es el ndice que corresponde a la columna A.

4.3.2. Escritura de datos desde celdas de Excel


Usando la propiedad Range Si quisiramos escribir o modificar el valor de un objeto celda, debemos colocar: Workbooks(Nombre_de_libro).Worksheets(Nombre_de_hoja).Range(CF) = valor_a_otorgar Donde valor_a_otorgar es el valor que se escribir en la celda correspondiente a la columna C, fila F de la hoja Nombre_de_hoja del libro Nombre_de_libro. Por ejemplo: Workbooks(Libro1). Worksheets(Hoja de datos). Range(A1)=dato Escribir en la celda A1 de la hoja de trabajo Hoja de datos del libro Libro1 el valor que tenga la variable dato. Usando la propiedad Cells Si quisiramos modificar el valor de un objeto celda, debemos colocar: Workbooks(Nombre_de_libro).Worksheets(Nombre_de_hoja).Cells(F,C) = valor_a_otorgar Donde valor_a_otorgar es el valor que se escribir en la celda correspondiente a la fila F, y al ndice de columna C de la hoja Nombre_de_hoja del libro Nombre_de_libro. Por ejemplo para el ejemplo anterior se tendra: Workbooks(Libro1). Worksheets(Hoja de datos). Cells(1,1)=dato Ejemplo: Deseamos escribir un programa que lea los datos almacenados en las celdas A1, B1 y C1, duplique el valor de dichos datos y los escriba en las celdas A2, B2 y C2. a. b. c. d. Cree un nuevo libro Excel, tal como se indic en la seccin anterior Ingrese al Editor de Visual Basic Inserte un nuevo Mdulo Copie el siguiente cdigo:

25

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

e.

Regrese a la primera hoja del libro en el que est trabajando y coloque datos en las celdas A1, B1 y C1:

f.

Ejecute dicho procedimiento, en la Cinta de opciones, ficha Programador seleccione la opcin Macro. A continuacin se listarn las macros disponibles, y seleccione el procedimiento que queremos ejecutar (duplica_valores), ver que se llenarn las celdas A2, B2 y C2:

4.3.3. Forma Simple: Si trabajamos con un solo libro y en una sola hoja podremos reemplazar la siguiente instruccin: valor1 = Workbooks("Libro1.xlsx").Worksheets(1).Range("A1") por: valor1 = sheets(Hoja1).Range("A1") o Valor1 = Hoja1. Range(A1)
Mi procedimiento ser:

26

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

IMPORTANTE: En la mayora de los ejercicios del curso, trabajaremos de esta forma. Es decir, los datos de entrada se leern desde las celdas y los datos de salida se escribirn en las celdas del libro de trabajo.

4.3.4. Lectura y Escritura desde VBA


Adems si se desea utilizar caja de dialogo, puede utilizar:

Inputbox Muestra una caja de dilogo en la que se solicita el ingreso de un dato. Se utiliza cuando se quiere leer un dato que ser ingresado por teclado. Su sintaxis es: dato_ingresado = InputBox ("Mensaje que aparecer en la ventana en la se solicitan los datos","Ttulo de la ventana en la que solicitar los datos") Devuelve el valor que haya sido ingresado por teclado, en la variable dato_ingresado. Por ejemplo si ejecutramos: Edad = InputBox ("Ingrese su edad","Solicitud de datos") Se mostrar la siguiente ventana:

Si nosotros ingresramos 17 por ejemplo, y diramos clic en aceptar. El dato ingresado (17) ser almacenado en Edad.

MsgBox Muestra una caja de dilogo que contiene un mensaje y botones. Su funcin principal es la de mostrar alguna informacin por pantalla. La sintaxis de esta sentencia es: Call MsgBox ("La sentencia que quiere que aparezca en la ventana", ,"Ttulo de la ventana") Por ejemplo si ejecutramos: Call MsgBox("5", , "Su nmero de la suerte es:") Se mostrar la siguiente ventana:

4.4. OPERACIONES ARITMTICAS EN VBA


En VBA tambin se pueden realizar diversas operaciones aritmticas que van desde las ms simples hasta las ms complejas. A continuacin se enumeran las operaciones que se pueden realizar y se indica el operador le corresponde y la prioridad tienen respecto al resto de operadores.

27

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

Operacin Potenciacin Negacin Multiplicacin Divisin Divisin Entera (devuelve el cociente de una divisin) Mdulo o Residuo de Divisin Entera Adicin Substraccin

Operador ^ * / \ mod + -

Precedencia o Prioridad 1 2 3 3 4 5 6 6

Los operadores se aplican a expresiones matemticas siempre de izquierda a derecha y primero se resuelve la operacin con mayor prioridad para luego seguir con las dems. Si una expresin a evaluar tuviera una subexpresin entre parntesis, primero se opera dicha subexpresin y luego se aplica la prioridad de los operadores. A continuacin se evaluarn algunas expresiones aplicando la prioridad de operadores: 1) R = 5^2 *4 + -50/2 -4 De acuerdo con la prioridad de operadores, en esta expresin primero deber operarse la potencia, es decir, 5^2=25, luego se aplicar la multiplicacin de este resultado con 4, 25*4=100, despus se resuelve la divisin 50/2=-25. De este modo queda la expresin: R = 100 + -25 -4, y como los operadores de suma y resta tienen la misma precedencia se empieza a operar de izquierda derecha, primero la suma y luego la resta. Quedando como resultado R = 71 2) R = 20 / 3 17 Mod 4 En esta expresin se debe operar primero la divisin, quedando la expresin R = 6.66666667 17 mod 4 Como el residuo tiene mayor prioridad que la resta, se procede a operar el residuo de dividir 17 entre 4, el cual da como resultado 1. De esta forma queda la expresin: R = 6.66666667 1 y se tiene como resultado final R=5.66666667 3) R = 5 * (5 1 + 8) En esta expresin debe operarse primero lo que est dentro de los parntesis (respetando la prioridad de los operadores) quedando la expresin R = 5 *12 lo que da como resultado R = 60

5. CREACIN DE SUBPROGRAMAS
Tal como se mencion previamente en VBA se pueden crear 2 tipos de subprogramas:

Procedimiento: Es un grupo de instrucciones VBA que realiza una accin (o acciones) con Excel y devuelve CERO o ms de un valor. Funcin: Es un grupo de instrucciones VBA que realizan un clculo y devuelven un NICO VALOR.

En VBA, se hace referencia a los procedimientos mediante la palabra reservada Sub y a las funciones mediante la palabra reservada Function. Las macros son especficamente procedimientos (Sub). Piense en un procedimiento como un comando, al momento de ejecutarlo algo sucede. Una funcin es un subprograma, pero es distinto a un procedimiento. Usted ya est familiarizado con el concepto funcin, Excel incluye muchas funciones propias que usted puede usar como SUMA, POTENCIA, BUSCARV, entre otras. Estas funciones son usadas en frmulas o expresiones, y cada funcin tiene uno o ms argumentos (aunque

28

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

algunas carecen de argumentos). La funcin realiza algunos clculos que usted no observa y le devuelve un NICO valor. Lo mismo sucede con las funciones que usted desarrolla con VBA. Mayormente utilizaremos el Editor de Visual Basic para crear los subprogramas (procedimientos y funciones). Sin embargo, algunos procedimientos llamados Macros se pueden crear usando la Grabadora de Macros del Excel. Ms adelante se explicar: Cmo crear procedimientos o Mediante macros o Mediante el uso del VBE Cmo crear funciones definidas por el usuario. Antes, se har una revisin de las funciones estndar de VBA y de las funciones de Excel.

5.1. Reglas para nombrar subprogramas


Para colocar nombre a los subprogramas en VBA (Sub o function) debe seguir las siguientes reglas: Puede usar letras, nmeros, y algunos caracteres puntuales ( _ por ejemplo ), pero el primer carcter debe ser una letra. No puede usar espacios en blanco o comas. No puede usar ninguno de los siguientes caracteres: #, $, %, &, @, ^,*, !, espacio en blanco. Si va a escribir una funcin que luego usar en una frmula, asegrese que el nombre no se parezca a una direccin de celda o rango (AC12 por ejemplo). El nombre de un subprograma debera describir, en cierta manera, el propsito del subprograma. El nombre de un subprograma debe ser nico, no pueden existir 2 subprogramas del mismo tipo sub o function con el mismo nombre.

5.2. Comentarios en los subprogramas


El uso de los comentarios dentro de los subprogramas nos ayuda a colocar algn texto que sirva como aclaracin o informacin adicional, pero que no forma parte del cdigo, es decir, Excel no ejecutar dicho texto. Para ello debemos colocar (comilla simple) al inicio de la lnea y fjese que el texto aparecer en color verde.

5.3. Creacin de Procedimientos 5.3.1. Creacin de Procedimientos Mediante el Uso del VBE
Para crear un procedimiento deber aadir un mdulo VBA. Para ello deber: Ir a la ventana Explorador de Proyecto y seleccionar el proyecto en el que desea agregar el mdulo. Por lo general usted slo trabajar con un solo libro Excel, por tanto slo se le mostrar un proyecto cuyo nombre es igual al libro de trabajo Excel en el que est trabajando. Hacer clic derecho, seleccionar Insertar/Mdulo. Tambin puede usar la opcin Mdulo del men Insertar. En caso que desee borrar un mdulo, deber: Ir a la ventana Explorador de Proyecto y seleccionar el mdulo que desea eliminar. Hacer clic derecho, Quitar Mdulo X. Tambin puede usar la opcin Quitar Mdulo X del men Archivo.

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

Luego deber escribir el procedimiento en la ventana Cdigo que se despliega al lado derecho de la pantalla. Recuerde adems que la sintaxis de un procedimiento es la siguiente: Sub Nombre ([lista de argumentos]) [instrucciones] End Sub Lo primero que deber recordar es que el nombre del procedimiento sigue las mismas reglas que se especificaron en el apartado 5.1 Reglas para nombrar subprogramas. Adems, una lnea de cdigo o instruccin VBA puede ser tan larga como usted desee, sin embargo, tal vez quiera usar el carcter de continuacin de lnea para romper lneas de cdigo muy largas. Para continuar una instruccin de una lnea a otra, al final de la primera lnea deber dejar un espacio y colocar el smbolo raya abajo ( _ ). Luego, contine la oracin en el siguiente rengln. Por ejemplo: Range("A1:A13").Select Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal Continuando con el mdulo que habamos creado, agregaremos a este mdulo un procedimiento que no tiene parmetros. En la ventana de cdigo correspondiente al mdulo 1 escribiremos Sub Bienvenida( ) y presionamos la tecla Enter. Veremos que automticamente se genera la lnea End Sub. Dentro del procedimiento escribiremos la o las sentencias que queremos ejecutar, por ejemplo: Range(A2)= "Bienvenido a Excel !!!".

5.3.2. Ejecucin de un procedimiento


Luego de escribir el procedimiento se debe ejecutar. Hay varias formas de realizarlo: a. b. Desde VBE, ubicarse en el cdigo del procedimiento que desea ejecutar y presionar F5 o el botn de la barra de herramientas (tambin puede seleccionar la opcin Ejecutar Sub/UserForm del men Ejecutar). Cuando el procedimiento no tiene parmetros, puede ejecutarlo de la misma manera en que ejecutara una macro (ver apartado Ejecucin de una macro)

5.3.3. Mediante el Uso de Macros


El trmino Macro proviene del vocablo griego makros, que significa grande. Una macro consiste en una serie de comandos y funciones que se almacenan automticamente en un mdulo de VBA. a. b. En la Cinta de opciones pulsar la ficha Programador y en el grupo Cdigo hacer clic en la opcin Grabar macro. Esto activar el cuadro de dialogo Grabar Macro. Donde deber ingresar un nombre a la macro y elegir el mtodo abreviado para ejecutarla (qu tecla, adems de la tecla Ctrl deber presionarse para activar (ejecutar) la macro). Al dar clic en Aceptar se cierra el cuadro de dilogo y se empieza a grabar la Macro. A partir de este instante Excel monitorea todo lo que usted haga y lo convierte a cdigo VBA. Note que en la cinta de opciones aparece un nuevo botn en lugar del de Grabar macro:

c.

30

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

d. e.

Para detener la grabacin deber hacer clic en el botn Detener grabacin. Luego, deber ingresar al editor de Visual Basic. En la ventana de propiedades deber desplegar la carpeta Mdulos y observar que hay un mdulo llamado Mdulo1:

f.

Al hacer doble clic sobre Mdulo1 aparecer al lado derecho una pantalla similar a la siguiente:

All podr observar el cdigo que se gener al grabar las macros. Note que algunos renglones tienen palabras escritas en verde y comienzan con una comilla simple, se trata de comentarios, cuando se graba una macro, se comenta el nombre de la macro, en qu fecha se grab y la persona que lo grab. Ejercicios a. Cree la macro Macro1 (con mtodo abreviado, CTRL-w) que escriba en la celda A1 la palabra Universidad, que escriba en la celda A2 el nmero 2010 y que en la celda A3 coloque una frmula que le sume 1 al valor de la celda A2. b. Cree la macro Macro2 (con mtodo abreviado CTRL-b) que seleccione las celdas A1:A3 y borre su contenido. a. b. Solucin de la Macro 1 En la Hoja1, en la Cinta de opciones pulsar la ficha Programador y en el grupo Cdigo hacer clic en la opcin Grabar macro. Asigne el nombre Macro1, [w] como tecla de mtodo abreviado y pulse en botn Aceptar. Dirjase a la celda A1, escriba UNIVERSIDAD, y presione Enter En la celda A2, escriba 2010, y presione Enter En la celda A3, escriba la frmula =A2+1, y presione Enter Seleccione el botn Detener grabacin [ ] de la ficha Programacin para culminar con la grabacin. Solucin de la Macro2 En la Cinta de opciones pulsar la ficha Programador y en el grupo Cdigo hacer clic en la opcin Grabar macro.

31

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

c.

Asigne el nombre Macro2, [b] como tecla de mtodo abreviado y pulse en el botn Aceptar. Seleccione con el ratn el bloque de celdas A1:A3 y presione el botn suprimir del teclado. Seleccione el botn Detener grabacin [ ] de la ficha Programacin para culminar con la grabacin Ejecutar alternativamente la Macro1 y la Macro2, con las teclas CTRL-w, y CTRL-b.

A continuacin analizaremos el cdigo generado automticamente para las macros Macro1 y Macro2. Vaya al Editor de Visual Basic y en la ventana Proyecto despliegue la carpeta Mdulos, d doble clic en Mdulo1. Observar que para la macro Macro1 se ha generado el siguiente cdigo: Sub Macro1() ' Macro1 Macro ' Macro grabada el 21/04/2010 Range("A1").Select ActiveCell.FormulaR1C1 = "Universidad" Range("A2").Select ActiveCell.FormulaR1C1 = "2010" Range("A3").Select ActiveCell.FormulaR1C1 = "=R[-1]C+1" Range("A4").Select End Sub

Excel ejecuta cada una de las instrucciones en el orden en el que estn escritas: La primera instruccin VBA identifica la macro como un procedimiento (Sub) y le da un nombre (en este caso, Macro1), recuerde que al momento de grabar la macro usted decide su nombre. Las siguientes dos instrucciones estn precedidas de una comilla simple (), indicando que se trata de comentarios. Los comentarios se incluyen para dar informacin adicional a la persona que escribe el programa; Excel no ejecuta los comentarios. La siguiente instruccin, Range(A1).Select, le indica a Excel que debe seleccionar la celda A1, como no se hace referencia a la hoja de la que desea seleccionar la celda, Excel asumir que se trata de la hoja que est activa (en nuestro caso, la hoja1). La siguiente instruccin, ActiveCell.FormulaR1C1 = "Universidad", le indica a Excel que debe colocar en la celda activa la palabra Universidad. Las dos siguientes sentencias son semejantes a las explicadas anteriormente. Luego de la instruccin en la que se indica seleccionar la celda A3, se encuentra la instruccin ActiveCell.FormulaR1C1="=R[-1]C+1", que le indica a Excel que coja el valor de la celda correspondiente a la fila anterior y a la misma columna respecto a la celda activa ((R[-1]C) y le agregue 1 (+1). Por ltimo, se selecciona la celda A4. Respecto a la macro Macro2, observamos el siguiente cdigo: Sub Macro2() ' Macro2 Macro ' Macro grabada el 21/04/2007 Range("A1:A3").Select Selection.ClearContents End Sub Al igual que en el ejemplo anterior, la primera instruccin identifica la macro como un procedimiento (Sub) de nombre Macro2. Las siguientes dos instrucciones son comentarios. La siguiente instruccin, Range("A1:A3").Select, le indica a Excel que debe seleccionar el rango A1:A3, es decir que seleccionar las celdas comprendidas en se rango (A1, A2, A3). La siguiente instruccin, Selection.ClearContents, le indica a Excel que debe borrar el contenido de la seleccin actual (la que se indic en la instruccin anterior, A1:A3)

Se pueden usar las Macros para tareas mucho ms complejas, inclusive para elegir opciones del men de Excel. Por ejemplo, se puede crear una macro que genere un grfico, o una que abra un archivo, o una que realice clculos complicados, entre otras.

32

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

5.3.4. Ejecucin de una macro


Existen varias formas de ejecutar una macro dentro de Excel: a. b. c. Usando la teclas de mtodo abreviado asignadas en el momento de crear la macro. En nuestro ejemplo, CTRL-w, y CTRL-b respectivamente. Dentro de VBE, ubicndose en el procedimiento que desea ejecutar, por ejemplo Macro2 y presionando . Tambin es posible llamar al procedimiento desde un botn que usted podra dibujar en la hoja de clculo de Excel. Para ello, deber ubquese en la seccin Controles de la ficha Programador:

Seleccionar el cono Insertar (resaltado en el dibujo anterior), luego de lo cual se desplegar un cuadro de controles como el mostrado:

Seleccionar el primer cono de los controles de formulario, el cual le permite dibujar un botn, luego ubique el cursor del mouse en alguna de parte de la hoja (ver que el cursor tiene forma de cruz) y haga clic sobre ella. Automticamente se dibujar el botn y a continuacin aparecer una lista con las macros disponibles y Excel le preguntar a qu macro desea asociar dicho botn. Supongamos que se quisiera asociar a la Macro1 (antes desarrollada). Finalmente, en la hoja tendr algo similar a:

En adelante, cada vez que se presione el botn Botn 1, se ejecutar la macro Macro1. d. En la misma hoja de clculo, en la ficha Programador de la cinta de opciones se puede elegir la opcin Macros, tras lo cual aparecer una ventana con la lista de todas las macros disponibles:

33

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

Lo nico que debe hacer es seleccionar la macro que desea ejecutar y presionar Ejecutar.

5.4. Creacin de Funciones


Una funcin, bsicamente, realiza clculos y devuelve un NICO valor. La funcin SUMA devuelve la suma de un rango de valores. Lo mismo sucede con las funciones usadas en VBA: cada funcin realiza lo necesario para devolver un nico valor. Las funciones que se pueden usar en VBA son: Funciones proporcionadas por VBA. Funciones proporcionadas por Excel (ejemplo: RAIZ, SUMA, MAX, SI, PROMEDIO, entre otras) Funciones personalizadas, funciones que usted escribir en VBA, mediante el uso del VBE. Antes de la pasar a revisar la creacin de funciones personalizadas, debemos revisar las funciones estndar de VBA y su relacin con las de Excel, as como su aplicacin.

5.4.1. Funciones VBA


VBA provee numerosas funciones, algunas de stas tienen argumentos y otras no. En la siguiente tabla se muestran algunas funciones que usaremos en la tercera sesin del laboratorio. Funciones VBA ms usadas Funcin Abs Atn Cos Exp Fix * Hex Int * Log Oct Rnd Round Sgn =Abs(n) =Atn(n) =Cos(n) =Exp(n) =Fix(n) =Hex(n) =Int(n) =Log(n) =Oct(n) =Rnd =Round(n,numDecimales) =Sgn(n) Sintaxis Accin Devuelve el valor absoluto de un nmero Devuelve el arco tangente de un nmero Devuelve el coseno de un nmero Devuelve el resultado de elevar e (la base de los logaritmos naturales) a un nmero. Devuelve la parte entera de un nmero Convierte decimal a hexadecimal Devuelve la parte entera de un nmero Devuelve el logaritmo natural de un nmero Convierte un nmero decimal a octal. Devuelve un nmero cualquiera entre 0 y 1 Redondea un nmero a cierta cantidad de decimales. Devuelve un 1 si el nmero es positivo y -1 si el nmero es negativo. Si el nmero es cero, devuelve cero. Devuelve el seno de un nmero Devuelve la raz cuadrada de un nmero Devuelve la tangente de un nmero Devuelve el valor de pi, 3.1416

Sin Sqr Tan Valor de Pi

=Sin(n) =Sqr(n) =Tan(n) =Application.Pi()

* La diferencia entre Int y Fix es que si el nmero es negativo, Int devuelve el primer entero negativo menor o igual a nmero, mientras que Fix devuelve el primer entero negativo mayor o igual a nmero. Por ejemplo, Int convierte -8.4 en -9 y Fix convierte -8.4 a -8.

34

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

A pesar que VBA ofrece una gran cantidad de funciones, en algunas ocasiones tal vez no encuentre lo que necesita. Afortunadamente, usted tambin puede usar la mayora de funciones que ofrece Excel. Las nicas que no puede usar son aquellas que tienen una funcin equivalente en VBA.

5.4.1.1. Algunas transformaciones tiles Funciones trigonomtricas tan(x) = sen(x)/cos(x) cot(x) = cos(x)/sen(x) sec(x) = 1/cos(x) csc(x) = 1/sen(x)

Funciones trigonomtricas inversas arcsen(x) = arctan (

x 1 x
2

arcsec(x) = arctan

( x 2 1)
1 x2 1 )

arccos(x) = arctan

1 x2 ) x

arccsc(x) = arctan (

arccot(x) = arctan (1/x)

5.4.2. Funciones de Excel


VBA hace que las funciones de Excel estn disponibles a travs del objeto WorksheetFunction que est contenido en el objeto Application (recuerde que el objeto Application es el mismo Excel). Por tanto la sintaxis para usar una funcin proporcionada por Excel es: Application.WorksheetFunction.FUNCION(ARGUMENTOS_DE_LA_FUNCION) Para estos casos el nombre de la funcin estar en ingls, es decir en lugar de colocar SUMA, deber colocar SUM. Por ejemplo: a = Application.WorksheetFunction.Sum(13.14) O simplemente a = Application.Degrees(3.14) En el siguiente ejemplo se muestra cmo un procedimiento utiliza funciones VBA y funciones Excel: Sub Area_circulo( ) r = Range(A1) p = Application.Pi( ) a=p*r^2 a = Round(a, 2)

Se lee el radio de la celda A1 'En este caso Pi( ) es una funcin de Excel 'Round( ) es una funcin VBA. Tambin se pudo obviar la 'instruccin anterior y colocar de frente la expresin: a = 'Round( p * r ^ 2 , 2)

Range(B1)="El area del crculo es = " & a End Sub

5.4.3. Funciones personalizadas


Al igual que los procedimientos, usted puede escribir sus propias funciones. La nica diferencia que siempre debe tener en cuenta es que stas SIEMPRE DEVUELVE UN NICO VALOR. Adems, si usted piensa usar una funcin particular dentro de alguna celda de las hojas del libro en el que est trabajando, digamos como parte de alguna frmula, debe definir la funcin dentro del proyecto correspondiente a dicho libro.

35

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

La sintaxis de una funcin es similar a la de un procedimiento: Function Nombre_funcion([lista de argumentos separados por comas]) [instrucciones] Nombre_funcion = valor End Function El nombre de la funcin debe seguir las mismas reglas que las que se especificaron en la NOTA del apartado 6.1.1 Creacin de Procedimientos Mediante el Uso de Macros. La instruccin ms importante en una funcin es la ltima sentencia, en la que se devuelve el valor que calcula la funcin, esta instruccin nunca debe faltar y siempre debe ser la ltima instruccin de la funcin. Revisemos algunos ejercicios, pero antes recordemos que en el curso podremos usar nuestras funciones de dos formas: - Forma1: Invocando directamente la funcin en una celda en Excel. - Forma2: Desde un procedimiento en VBA.

Ejemplo 1: Multiplicando nmeros A continuacin se muestra un ejemplo de funcin personalizada que multiplica dos nmeros. En el VBE escribiremos:

Esta funcin recibe dos argumentos num1 y num2, que son los datos que se necesitan para hallar el resultado de la funcin. Luego, usted podra usar esta funcin en el libro de trabajo usndolo como parte de la frmula de una celda. Por ejemplo:

Ejemplo 2: Calculando el nmero de dgitos Tambin podramos crear una funcin que determine el nmero de dgitos de un nmero entero diferente de cero. Para ello, podramos aplicar el siguiente algoritmo: - Hallaremos el logaritmo del nmero en base 10. - Luego, extraeremos la parte entera del resultado antes obtenido - Y finalmente le sumaremos 1 al resultado anterior. As por ejemplo, si el nmero fuera 999, aplicando el algoritmo tenemos: - log(999), cuyo resultado es 2.99957 - Luego, extraemos la parte entera de 2.99957, es decir 2. - Finalmente le sumamos uno al resultado anterior: 2 + 1, lo que da como resultado 3. Que es, efectivamente, el nmero de dgitos que tiene 999.

36

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

Para implementar la funcin, escribiremos en el mdulo:

Usaremos esta funcin desde el libro Excel colocndola como parte de la frmula en la celda D1:

Ejemplo 3: Calculando el rea de un crculo Otra funcin personalizada podra ser una que se encargue de calcular el rea de un crculo teniendo como argumento el radio.

Cree en su hoja de trabajo en Excel una tabla como la que se muestra a continuacin:

Luego siga las instrucciones a continuacin para usar la funcin creada en el libro Excel con ayuda del asistente para insertar funciones: a. Ubquese en la celda C3 y seleccione la opcin Insertar Funcin desde la Ficha Frmulas, lo cual le mostrar una ventana como la siguiente:

37

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

b. c.

Aqu seleccione la categora Definidas por el usuario, y enseguida se mostrarn todas las funciones que fueron creadas desde el VBE. Seleccione la funcin que desee aplicar, para el ejemplo ser Area_circular y presionar Aceptar. Se mostrar una ventana para completar los datos que requiere la funcin:

d. e.

En el caso de nuestra funcin ingrese el valor del radio (por ejemplo: 2) o seleccione la celda desde donde nuestra funcin deber coger el valor (en nuestro caso A3). Presione Aceptar. El resultado obtenido ser:

Ejemplo 3: Evaluando expresiones. Desarrollaremos un subprograma para calcular el valor de M, utilizaremos los datos de las celdas de Excel, como se muestra:

Se sabe que los valores de x, phi, b y a sern colocados en las celdas B4, C4, D4 y E4, respectivamente, y que el resultado deber ser colocado en F4. Para resolver esta expresin se podra crear una funcin adicional para hallar la arcosecante y luego hacer una funcin que halle M. De la siguiente manera:

38

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

Luego, se podra crear un procedimiento que se encargue de: Leer los datos de las celdas B4, C4, D4 y E4 Calcular M usando la funcin hallar_M Escribir el resultado en la celda F4 Entonces tendra el siguiente cdigo:

Finalmente, puede colocar un botn que ejecute el procedimiento Imprimir_formula. Para ello, vaya a la seccin Controles de la ficha Programador en la cinta de opciones:

Seleccione el cono Insertar (resaltado en el dibujo anterior), y se desplegar un cuadro de controles como el mostrado:

Seleccione el primer cono de los controles de formulario, luego ubique el cursor del ratn en alguna de parte de la hoja. Aparecer la siguiente ventana:

39

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

Seleccione el procedimiento Imprimir_formula y seleccione Aceptar. De esta manera se ha relacionado (enlazado) el botn al procedimiento y cada vez que presionemos dicho botn se ejecutar el procedimiento Imprimir_formula. Finalmente, puede cambiar el texto que aparece en el botn, para ello deber hacer clic derecho en el botn y seleccionar la opcin Modificar Texto, con la tecla suprimir borre el contenido actual y luego escriba Calcular M, d clic en cualquier parte de la hoja. Tendr algo similar a la siguiente pantalla:

Para dar un acabado final a la presentacin, haga clic derecho al botn para seleccionarlo, y luego haga clic en alguna parte del borde del botn y, sin soltar el ratn, desplace el botn hasta donde desee que aparezca. Borramos La pantalla final ser similar a la siguiente figura:

6. Ejercicio
6.1. Problema del Lpiz
Un alumno desea calcular el volumen de un lpiz, para ello identifica tres secciones, la punta del lpiz (forma cnica), el cuerpo del lpiz (forma cilndrica) y el borrador (forma de media esfera), tal como se muestra en la figura:

Adems se cuenta con la siguiente Hoja en Excel:

Para ello Ud. debe implementar en VBA: a. Un subprograma que lea los datos de entrada desde las celdas en Excel como se muestra en la figura anterior. b. Un subprograma que calcule el volumen de la punta del lpiz.

40

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

c. d. e. f.

g.

Un subprograma que calcule el volumen del cuerpo del lpiz. Un subprograma que calcule el volumen del borrador del lpiz. Un subprograma que calcule el volumen total del lpiz, para ello deber utilizar los subprogramas anteriores. Un subprograma que muestre el resultado. Un subprograma principal que utilizando los subprogramas anteriores ayude a resolver el problema planteado.

6.1.1. Definicin y Anlisis


Explicacin: Calcular el volumen del lpiz teniendo como datos de entrada el radio, altura del borrador y la altura del cuerpo. Datos de entrada: radio, alturacono, alturacilindro Dato de salida: volumenlapiz Frmulas: Volumendelborrador=(4/3**radio2)/2 Volumendelcuerpo= *radio2 * alturacilindro Volumendepunta=(1/3**radio2)* alturacono Volumenlapiz = Volumendelborrador + volumendelcuerpo + volumendepunta Se implementa el siguiente diagrama de mdulos

6.1.2. Implementacin (Codificacin)

41

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

6.1.3. Resultado

6.2. Choque de Partculas


El Large Hadron Collider (LHC) es el ms reciente acelerador de partculas construido por el Consejo Europeo para la Investigacin Nuclear (CERN) y tiene como objetivo hallar nuevas partculas subatmicas. Para ello, el acelerador hace colisionar dos haces de protones a muy alta velocidad. Cada protn de carga elctrica q y masa m parte con una velocidad igual a 0, y luego de atravesar una zona que tiene una diferencia de potencial , adquiere la siguiente velocidad:

v=

2*q* m

Una vez atravesada esta zona, cada protn se encuentra dentro de un campo magntico (B) el mismo que ejerce una fuerza (F) sobre el protn, llamada fuerza de Lorentz:

F = q*v* B
Debido a esta fuerza, la trayectoria del protn deja de ser una lnea recta para ser una curva con radio de curvatura (r), el mismo que puede obtenerse de la siguiente frmula:

F=

m *v2 r

Un alumno desea desea hallar el radio de curvatura de la trayectoria de un protn conociendo su carga y masa, la diferencia de potencial de la zona que atraviesa ( ) y el campo magntico (B) en el que se encontrar luego de atravesar dicha zona.

Adems se cuenta con la siguiente Hoja en Excel:

Para ello Ud. debe implementar en VBA: a. Un subprograma Leer_datos que lea los datos de entrada desde las celdas en Excel como se muestra en la figura anterior. b. Un subprograma Hallar_Velocidad que calcule la velocidad. c. Un subprograma Hallar_Fuerza que calcule la fuerza de Lorentz. d. Un subprograma Hallar_Radio que calcule el radio de curvatura.

42

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

e.

f.

Un subprograma Imprimir_datos que permita mostrar el radio de curvatura. Un subprograma principal que utilizando los subprogramas anteriores ayude a resolver el problema planteado.

6.2.1. Definicin y Anlisis


Clculo del radio de curvatura de la trayectoria de un protn teniendo como datos de entrada la carga, la masa, potencial diferencial y el campo magntico. Usando las siguientes formulas.

Datos de entrada: carga(q), masa(m), potencial( ) y campomagntico(B). Datos de salida: radio


Calcular datos

Leer datos

Hallar Velocidad

Hallar Fuerza

Hallar Radio

Imprimir datos

6.2.2. Implementacin (Codificacin)

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

6.2.3. Resultado

7. Ejercicio P ropuesto
Se tiene la siguiente hoja de clculo:

Se desea calcular la masa molecular del compuesto AxBy mediante la siguiente frmula, (masa_atomica_A*Nmero_tomos_A + masa_atomica_B * Nmero_tomos_B ) para luego calcular el nmero de moles de molculas (Cantidad_gramos / masa_molecular_compuesto) para determinado peso del gas y finalmente hallar el volumen que ocupa dicho gas a cierta presin y temperatura. Para ello, se pide: a. Realizar un subprograma que calcule la masa molecular de un compuesto formado por 2 elementos A y B, teniendo como parmetros de entrada la masa atmica de A, el nmero de tomos de A (x), la masa atmica de B, el nmero de tomos de B (y). Realizar un subprograma que calcule el nmero de moles de molcula teniendo como parmetros de entrada el peso(en gramos) del compuesto y la masa molecular del compuesto. Realizar un subprograma que reciba como parmetro la temperatura en grados Celsius y devuelva la temperatura correspondiente en grados kelvin. Recuerde que: K = C + 273

b. c.

44

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

d. e.

Realizar un subprograma que calcule el volumen de un gas teniendo como parmetros de entrada la presin, el nmero de moles de molcula, la constante R y la temperatura en grados kelvin. Realizar un subprograma principal que: Lea la masa atmica del compuesto A, la masa atmica del compuesto B, el nmero de tomos de A, el nmero de tomos de B, el peso en gramos, la presin en atm, la constante R y la temperatura en grados Celsius. Utilizando uno de los subprogramas anteriores, calcule la masa molecular del compuesto AxBy. Utilizando uno de los subprogramas anteriores, calcule el nmero de moles de molcula equivalente para el peso ledo. Utilizando uno de los subprogramas anteriores, convierta a grados Kelvin la temperatura leda. Utilizando uno de los subprogramas anteriores, calcule el volumen que ocupa la Presin leda, el nmero de moles de molculas hallado, la constante leda y la temperatura convertida en el acpite anterior a grados Kelvin. Escriba en la celda E17 la masa molecular, en las celdas E23 y E29 el nmero de moles de molculas; y en la celda E35 el volumen. Finalmente, el botn Realizar Clculos deber llamar al subprograma anterior.

f.

Suponiendo que el compuesto AxBy fuera el gas metano (CH4). Un ejemplo de la aplicacin de este problema es:

8. Bibliog rafa
- 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). - Sitio web de Microsoft Office Online: http://office.microsoft.com (2010)

45

INF117 Introduccin a la computacin

Tercera Sesin de Laboratorio - Desarrollo de Programas 1

9. Actualizaci n:
16/09/2012.

46

You might also like