Académique Documents
Professionnel Documents
Culture Documents
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
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
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.
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.
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.
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.
b. c.
Escoger una de las tablas ejemplo (Contactos, Tareas, etc.) Indicar el nombre de la tabla.
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.
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.
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
El procedimiento anterior se debe seguir para cada par de campos relacionados en la base de datos. Tal como se muestra a continuacin:
d.
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 consulta ser:
10
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:
11
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
corchetes. Si busca una exclamacin de cierre (!) o un corchete de cierre (]), no es necesario que lo incluya entre corchetes
c. d.
e. f.
g. h.
Presionar el botn Siguiente. Ingresar el nombre del formulario y del sub-formulario si lo tuviera.
i.
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
CursosHorarios
AlumnosCursos
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.
b.
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
16
17
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
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).
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.
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
.csv
.ods
de
.xla .xlw
19
b.
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.
c.
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
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
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.
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
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.
24
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.
25
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
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.
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:
27
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
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.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.
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 !!!".
c.
30
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
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
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
Lo nico que debe hacer es seleccionar la macro que desea ejecutar y presionar Ejecutar.
* 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
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)
x 1 x
2
arcsec(x) = arctan
( x 2 1)
1 x2 1 )
arccos(x) = arctan
1 x2 ) x
arccsc(x) = arctan (
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)
35
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
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
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
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
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:
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
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.
41
6.1.3. Resultado
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.
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
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.
Leer datos
Hallar Velocidad
Hallar Fuerza
Hallar Radio
Imprimir datos
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
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
9. Actualizaci n:
16/09/2012.
46