Você está na página 1de 16

Grado en Geomtica y Topografa

PRCTICA 1. INTRODUCCIN AL VBA

P g i n a |1

Introduccin
Este guin de prcticas pretende introducir a los alumnos en la programacin de ordenadores utilizando el entorno de programacin VBA integrado en la suite ofimtica Microsoft Office, y ms concretamente en la aplicacin Microsoft Excel. Excel no es slo una interesante aplicacin de hoja de clculo, sino que ofrece amplias posibilidades para el desarrollo de aplicaciones basadas en procesamiento y anlisis de datos numricos. Es por esto por lo que proponemos este guin orientado a los alumnos de Ingeniera, ya que con VBA podemos programar clculos ms complejos sobre los valores contenidos en las celdas de una hoja de Excel ms all de las simples frmulas que este software permite. Por ejemplo: podemos incluir un botn en una hoja de Excel que al pulsarlo inicie un clculo sobre los datos almacenados en un rango de celdas previamente seleccionado. Este trabajo se ha centrado en la versin 2007 de la suite Office, aunque gran parte de su contenido se puede aplicar en otras versiones de Office. No pretendemos ensear las funcionalidades bsicas de Excel, y tampoco trataremos exhaustivamente todas las posibilidades que ofrece el lenguaje VBA; sin embargo, en la ltima seccin de este guin, titulada Para saber ms..., se incluyen referencias sobre VBA y Excel para usuarios de distintos niveles. Es importante destacar que con VBA no pretendemos implementar programas nuevos, sino que buscamos ampliar las capacidades de Excel, aadindole funcionalidades de las que carece. Esto nos va a permitir tener hojas de clculo a la carta, y orientadas a nuestras necesidades. Adems, podremos exportar e importar las funcionalidades que programemos hacia y desde otros ficheros de Excel, con lo que podremos evitar tener que programar dos veces el mismo clculo.

1. El entorno de programacin VBA


Excel incluye un entorno de programacin que nos permite implementar subalgoritmos que permiten acelerar y automatizar procesos, as como realizar clculos complejos que no se pueden llevar a cabo con una simple frmula. Este entorno est basado en Visual Basic, y para diferenciarlo de ste se denomina Visual Basic for Applications, o VBA. En esta primera seccin vamos a presentar el entorno y sus componentes. La forma ms rpida de acceder al entorno de programacin una vez que se ha abierto Excel es pulsar la combinacin de teclas Alt+F11. Al hacer esto, se nos muestra el entorno de programacin, tal y como se ve en la Figura 1-1.

Grado en Geomtica y Topografa

PRCTICA 1. INTRODUCCIN AL VBA

P g i n a |2

Figura 1-1: Entorno de programacin VBA

En el entorno de programacin distinguimos tres zonas: la superior, con la barra de mens y la barra de herramientas (1); la izquierda, con el Explorador de Proyectos en la parte superior (2) y la Ventana de Propiedades en la parte inferior (3), y la derecha (4), que por ahora aparece vaca. En esta cuarta zona es donde aparecern las ventanas donde escribiremos el cdigo VBA. Otra opcin para acceder al entorno de programacin es habilitar la ficha de programador en la cinta de opciones de Excel. Para ello es necesario acceder a las opciones de Excel, primero haciendo clic en el botn de Office que aparece en la esquina superior izquierda de la ventana de Excel, y luego en el botn de Opciones de Excel, tal y como se muestra en la Figura 1-2. A continuacin, basta con marcar la opcin Mostrar ficha Programador en la cinta de opciones (Figura 1-3), y aceptar los cambios. A partir de entonces estar disponible la ya mencionada ficha, y al activarla podemos pulsar el botn Visual Basic con el que se abre el entorno VBA (Figura 1-4).

Grado en Geomtica y Topografa

PRCTICA 1. INTRODUCCIN AL VBA

P g i n a |3

Figura 1-2: Activacin de la ficha de Programador en la cinta de opciones de Excel (I)

Figura 1-3: Activacin de la ficha de Programador en la cinta de opciones de Excel (II)

Figura 1-4: Botn para abrir el entorno VBA desde la ficha de Programador de Excel

En el Explorador de Proyectos podemos ver una jerarqua de elementos que parten del proyecto actual, llamado VBAProject (Libro1). Podemos observar referencias a las hojas existentes ahora mismo en el libro, as como un elemento denominado ThisWorkbook, que hace referencia al libro completo, entendindose por el mismo al fichero Excel que est abierto en ese momento. Si se hace doble clic en alguno de los elementos contenedores, se contrae o expande la lista del contenido almacenado en ellos. Si por el contrario se hace doble clic en alguno de los elementos contenidos, se abre una ventana en la parte derecha del entorno en la cual podremos escribir cdigo VBA asociado al mismo (Figura 1-5). Los cambios que hagamos en el cdigo VBA se guardan por defecto dentro del fichero Excel que estemos editando. No obstante, es necesario guardar los cambios realizados antes de cerrar el editor VBA (el entorno muestra una advertencia si no hemos guardado el trabajo). Tampoco debemos olvidar que aunque aparezca en una ventana aparte, el entorno VBA es parte de la aplicacin Excel, por lo que si se cierra la ventana de Excel, se cerrar tambin el editor VBA.

Grado en Geomtica y Topografa

PRCTICA 1. INTRODUCCIN AL VBA

P g i n a |4

Figura 1-5: Ventana de cdigo abierta

El entorno de programacin VBA intenta ser prctico para el programador, incluyendo la generacin automtica de algunos fragmentos de cdigo, inclusin de maysculas y minsculas, resaltado con colores y sugerencias a la hora de completar instrucciones. Esta ayuda es til siempre y cuando nunca perdamos de vista que el entorno est intentando adivinar lo que queremos hacer, y no siempre acierta. El entorno tambin permite tener abierta ms de una ventana de cdigo al mismo tiempo. Estas ventanas se pueden gestionar a travs del men Ventana de la aplicacin.

Figura 1-6: Acceso a la Referencia del Programador en la ayuda de Excel 2007

Existe una completa ayuda sobre VBA a disposicin del programador, a la que podemos acceder pulsando la tecla F1. Tambin es posible acceder a ayuda sobre una determinada instruccin del lenguaje colocando el cursor sobre dicha instruccin y pulsando la tecla F1. Por defecto, Excel tiene activa la opcin de buscar ayuda a travs de Internet, sin embargo, es recomendable restringir la bsqueda a la Referencia

Grado en Geomtica y Topografa

PRCTICA 1. INTRODUCCIN AL VBA

P g i n a |5

del Programador de Excel 2007, accesible a travs del men desplegable contenido en el botn de Buscar de

la ventana de ayuda, tal y como se muestra en la Figura 1-6.

2. Nuestro primer cdigo VBA


VBA permite programar utilizando el paradigma de programacin estructurada descrito en las clases de teora. Adems, VBA permite programacin dirigida por eventos. Esto es: es posible escribir cdigo que se ejecuta automticamente cuando se cumpla una condicin, normalmente referida a alguna accin del usuario de Excel. Vamos a aprovechar esta propiedad para escribir un primer cdigo VBA de prueba, que nos permita ir familiarizndonos con el lenguaje. La secuencia de pasos a seguir es la siguiente: 1. Abriremos Excel y el entorno de programacin VBA, en caso de que no estuviera abierto. 2. Haremos doble clic sobre el elemento Hoja1 (Hoja1) en el Explorador de Proyectos. Se abrir una ventana de cdigo en blanco. 3. En la parte superior de la ventana de cdigo hay dos controles desplegables (Figura 2-1). Seleccionaremos Worksheet en el control desplegable de la izquierda. Al hacer esto, se selecciona automticamente el valor SelectionChange en el control de la derecha, y aparece un trozo de cdigo en la ventana (Figura 2-2).

Figura 2-1: Controles desplegables en las ventanas de cdigo

Figura 2-2: Ventana de cdigo despus del paso 3

4. Incluiremos una nueva lnea en la ventana, de forma que quede como sigue:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) MsgBox "Se ha seleccionado el rango " & Target.Address End Sub

Mientras escribimos este cdigo podemos comprobar cmo el entorno VBA intenta facilitar nuestra tarea, mostrando informacin sobre cmo se escriben las instrucciones, tal y como se ve en la Figura 2-3, o mostrando una lista de las posibles opciones para completar una expresin (Figura 2-4).

Grado en Geomtica y Topografa

PRCTICA 1. INTRODUCCIN AL VBA

P g i n a |6

Figura 2-3: Tooltip indicando el formato de una instruccin

Figura 2-4: Completado de cdigo

5. Guardaremos el trabajo realizado, siguiendo la secuencia Archivo Guardar Libro1. NOTA IMPORTANTE: hay que seleccionar el tipo de archivo Libro de Excel habilitado para macros (*.xlsm) en el control desplegable correspondiente para poder guardar el cdigo VBA (Figura 2-5). Esto es as debido a que Office 2007 es la primera versin de Office que utiliza un formato de fichero especfico para incluir no slo los datos de las hojas de clculo, sino tambin los mdulos programados con VBA; en versiones anteriores, el cdigo VBA se guarda en los ficheros normales de Excel (con extensin .xls). Para probar el cdigo que acabamos de aadir basta con seleccionar con el ratn una celda o un grupo de celdas en la Hoja 1 del Libro de Excel. Cada vez que lo hagamos, aparecer una ventana de dilogo con un mensaje indicando el rango de celdas que se ha seleccionado, tal y como se muestra en la Figura 2-6. El evento que lanza la ejecucin del mdulo que se ha programado es el cambio de la seleccin de celdas, tal y como indica el nombre de dicho evento (SelectionChange). En todas las ventanas de cdigo VBA que abramos encontraremos los dos controles desplegables, que contendrn informacin sobre los elementos disponibles para programar. Siempre que seleccionemos un elemento en el control desplegable de la izquierda de una ventana de cdigo, se mostrar a la derecha una lista con los eventos disponibles relacionados con dicho elemento, que nos permite seleccionar y escribir cdigo para el evento que interese. Ms adelante se profundizar en la programacin dirigida por eventos.

Grado en Geomtica y Topografa

PRCTICA 1. INTRODUCCIN AL VBA

P g i n a |7

Figura 2-5: Seleccin del tipo de archivo para guardar

Opcionalmente, se pueden incluir comentarios en cualquier parte del cdigo utilizando la comilla simple ( ' ). Todo el texto a la derecha de la comilla y hasta el final de la lnea es considerado un comentario, y por tanto es ignorado por el intrprete de VBA:
' Esto es un ejemplo de comentario Private Sub Worksheet_SelectionChange(ByVal Target As Range) MsgBox "Se ha seleccionado el rango " & Target.Address End Sub ' Esto es otro ejemplo de comentario

El cdigo VBA se va revisando lnea a lnea conforme lo vamos escribiendo, de forma que si hay algn error sintctico, el editor nos avisa en el mismo momento que pulsemos la tecla de retorno de carro para pasar a la lnea siguiente. Si una lnea de cdigo es demasiado larga y deseamos partirla en dos sin que el editor lo detecte como un error, deberemos introducir el carcter _ (smbolo de subrayado) al final de la primera parte, y separado de ella por un espacio en blanco, tal y como se muestra en el siguiente ejemplo:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) MsgBox "Se ha seleccionado el rango " & _ Target.Address End Sub

Grado en Geomtica y Topografa

PRCTICA 1. INTRODUCCIN AL VBA

P g i n a |8

Figura 2-6: Primer mdulo VBA en accin

VBA nos va a permitir definir clculos personalizados, aadir nuevas posibilidades de interaccin mediante formularios, generar automticamente grficas de resultados de forma directa a partir de unos datos de entrada y, por tanto, adaptar Excel a nuestras propias necesidades. Adems, todo lo que programemos se puede exportar a ficheros independientes para posteriormente importarlos en otros libros de Excel.

3. Configuracin de seguridad
VBA es un lenguaje de programacin bastante potente. Por este mismo motivo, ha sido utilizado para desarrollar algunos virus informticos que pueden ser bastante dainos. Es por esto que Office 2007 incluye fuertes restricciones de seguridad, que es necesario que ajustemos para poder trabajar adecuadamente. En este apartado describimos dos posibilidades para configurar adecuadamente la seguridad de Excel, de manera que nos permita trabajar cmodamente. Con que sigamos los pasos de una de ellas adecuadamente es suficiente para nuestros propsitos. Es importante recalcar que en este apartado slo presentamos dos sugerencias para permitir la ejecucin de cdigo VBA. Es posible configurar de otras formas la seguridad de Office, pero no vamos a entrar en ms detalles.

1.1. Certificados digitales


Un certificado digital es un fichero que hace las veces de carn de identidad en el mundo digital. Existen una serie de entidades certificadoras que expiden este tipo de certificados, de forma que el certificado de cada persona es nico, y con l se pueden firmar electrnicamente documentos y trmites con cualquier administracin (local, autonmica, nacional...).

Grado en Geomtica y Topografa

PRCTICA 1. INTRODUCCIN AL VBA

P g i n a |9

VBA permite firmar digitalmente el cdigo, para asegurar que el autor del mismo es alguien de confianza. As se puede detectar si el cdigo ha sido escrito o modificado por alguien no autorizado, y bloquear su ejecucin en su caso. Para nuestras pruebas generaremos un certificado digital provisional, que no est respaldado por ninguna empresa de confianza, pero que nos permitir trabajar sin problemas. Los pasos a seguir para la expedicin de nuestro certificado digital son los siguientes: 1. Ejecutar la aplicacin Certificado digital para proyectos de VBA, disponible en la carpeta Herramientas de Microsoft Office (Figura 3-1) 2. Escribir nuestro nombre en el formulario que se muestra (Figura 3-2) y hacer clic en Aceptar. Con estos simples pasos ya tenemos el certificado digital disponible. Para firmar el cdigo VBA de un fichero Excel tenemos que seguir la secuencia Herramientas Firma digital dentro del entorno de programacin VBA, y elegir el certificado digital con el que queremos firmar el cdigo. Esta firma digital nos permitir autorizar la ejecucin de cdigo VBA dependiendo de quin lo haya firmado. Es muy importante destacar que esta firma no tiene valor formal si no est refrendada por una entidad de certificacin acreditada. Podemos ver una lista de entidades certificadoras haciendo clic en el hiperenlace que aparece en la herramienta de certificado digital. Una vez hemos generado nuestro certificado digital para firmar el cdigo VBA, vamos a ver cmo configurar Excel para poder ejecutar cdigo VBA firmado. Para ello, debemos abrir el dilogo de Opciones de Excel del mismo modo que hicimos anteriormente (Figura 1-2), y vamos a hacer clic en la opcin de Centro de confianza de la izquierda de la ventana, y luego en el botn de Configuracin del Centro de confianza (Figura 3-3). En la nueva ventana que se nos muestra, seleccionaremos la opcin Configuracin de macros, y dentro de ella activaremos la opcin de Deshabilitar todas las macros excepto las firmadas digitalmente (Figura 3-4).

Figura 3-1: Ejecucin de la herramienta de certificado digital Figura 3-2: Herramienta de certificado digital

Grado en Geomtica y Topografa

PRCTICA 1. INTRODUCCIN AL VBA

P g i n a | 10

Figura 3-3: Activacin de la ejecucin de VBA (I)

Una vez hechos estos cambios en la configuracin, cada vez que abramos un fichero que contenga cdigo VBA, Excel comprobar en primer lugar si hay una firma con certificado digital de esos datos, y a continuacin nos ofrecer la opcin de activar o desactivar el cdigo VBA previa comprobacin del certificado con el que est firmado. Para activar las macros de un archivo que acabamos de abrir, debemos hacer clic en el botn de Opciones que se muestra junto al aviso de desactivacin de macros, tal y como se ve en la Figura 3-5. Se nos mostrar entonces una ventana con informacin acerca de la firma del cdigo VBA, y se nos ofrecern distintas opciones para aceptar o denegar la ejecucin del cdigo firmado (Figura 3-6). Deberemos habilitar el contenido firmado si queremos ejecutar dicho cdigo, de lo contrario, Excel lo bloquear.

Grado en Geomtica y Topografa

PRCTICA 1. INTRODUCCIN AL VBA

P g i n a | 11

Figura 3-4: Activacin de la ejecucin de VBA (II)

Grado en Geomtica y Topografa

PRCTICA 1. INTRODUCCIN AL VBA

P g i n a | 12

Figura 3-5: Habilitacin de la ejecucin de cdigo VBA (I)

Figura 3-6: Habilitacin de la ejecucin de cdigo VBA (II)

Si por algn motivo nos equivocamos y no habilitamos el contenido, tendremos que cerrar y abrir el fichero de nuevo para que Excel nos vuelva a ofrecer la opcin de habilitar el cdigo VBA.

Grado en Geomtica y Topografa

PRCTICA 1. INTRODUCCIN AL VBA

P g i n a | 13

1.2. Ubicaciones de confianza


La segunda opcin que proponemos aqu para facilitar la ejecucin de cdigo VBA es el uso de las denominadas Ubicaciones de confianza. Una ubicacin de confianza es una carpeta cualquiera a la que podemos acceder desde nuestro ordenador, y cuyo contenido consideramos libre de amenazas. Podemos indicar a Excel una o ms ubicaciones de confianza, y guardar en ellas nuestro trabajo. Excel ejecutar el cdigo VBA de los ficheros contenidos en esas ubicaciones sin ninguna advertencia. De esta forma, no es necesario el proceso de la firma digital, pero debemos administrar con mesura la lista: si por ejemplo indicramos una unidad de disco completa como ubicacin de confianza, estaramos echando por tierra todas las precauciones de seguridad de Office. Para aadir una carpeta a la lista de ubicaciones de confianza, seguiremos los siguientes pasos: 1. Abriremos la ventana de Configuracin del Centro de confianza, de la misma forma que hemos descrito en el apartado anterior. 2. En la ventana de Configuracin del Centro de confianza, seleccionaremos la opcin Ubicaciones de confianza de la lista de la izquierda, y haremos clic en el botn de Agregar nueva ubicacin, tal y como se muestra en la Figura 3-7. 3. En la ventana que se abre a continuacin, podemos seleccionar una carpeta cualquiera, indicar si las subcarpetas que estn por debajo de ella en la jerarqua de ficheros tambin son de confianza, y aadir un comentario explicando, por ejemplo, el motivo por el que se ha establecido esa carpeta como segura, o indicando algunos detalles sobre los archivos que se guardan en esa ubicacin (Figura 3-8). Tambin disponemos de la opcin de eliminar una ubicacin de confianza. Para ello, basta con seleccionarla de la lista de ubicaciones (visible en la Figura 3-7), y a continuacin hacer clic en el botn de Quitar que aparece a la derecha del botn de Agregar nueva ubicacin que hemos visto anteriormente.

Grado en Geomtica y Topografa

PRCTICA 1. INTRODUCCIN AL VBA

P g i n a | 14

Figura 3-7: Inclusin de nuevas ubicaciones de confianza (I)

Figura 3-8: Inclusin de nuevas ubicaciones de confianza (II)

Grado en Geomtica y Topografa

PRCTICA 1. INTRODUCCIN AL VBA

P g i n a | 15

4. Mi segundo programa
Como todava no hemos aprendido cmo manejar funciones y procedimientos para ejecutar cdigo en VBA pondremos a la disposicin del alumno un programa esqueleto dnde ejecutaremos todos los ejercicios a partir de este momento. Se trata de un archivo en Excel disponible en la plataforma de Docencia Virtual denominado esqueleto.xlsm. Cuando abrimos el archivo esqueleto.xlsm encontramos en la Hoja 1 un botn dibujado, tal y como se muestra en la figura 4-1. Este botn se pulsar para ejecutar el cdigo del programa que escribamos. Dicho cdigo se incluir entre las sentencias que se muestran en la Figura 4-1.

Figura 4-1: Programa Esqueleto.xlsm

A continuacin escribiremos el cdigo siguiente (Nota que hay algunas sentencias que ya estn escritas):
Option Explicit Private Sub bejecutar_Click() Dim nombre As String

nombre InputBox (Introduzca su nombre:) MsgBox Buen comienzo de curso & nombre & ! End Sub

Guarda este cdigo como Ejercicio1.xlsm (libro de Excel habilitado para macros), y pulsa al botn Ejecutar de la Hoja1 para comprobar los resultados. Nota: Si el botn de ejecutar no funciona, retroceder al entorno VBA y pulsar el botn de play.

Grado en Geomtica y Topografa

PRCTICA 1. INTRODUCCIN AL VBA

P g i n a | 16

Anexo. Para saber ms...


Los libros estn ordenados alfabticamente segn su autor.
Libros genricos sobre Excel

Frye, Curtis; EXCEL 2007. Anaya Multimedia, 2007. ISBN: 978-84-415-2160-5 Varios autores; EXCEL 2007. Ediciones ENI, 2008. ISBN: 978-2-7460-3941-4 Walkenbach, John; LA BIBLIA DE EXCEL 2007. Anaya Multimedia, 2007. ISBN: 978-84-415-2211-4

Libros sobre programacin con VBA en Excel

Birnbaum, Duane; MICROSOFT EXCEL VBA PROGRAMMING THIRD EDITION FOR THE ABSOLUTE BEGINNER. Thomson Course Technology, 2007. ISBN: 978-1-59863-394-8 Jacobson, Reed; EXCEL 2007. VISUAL BASIC PARA APLICACIONES. Anaya Multimedia, 2007. ISBN: 978-84415-2260-2 Walkenbach, John; EXCEL 2007. PROGRAMACIN CON VBA. Anaya Multimedia, 2007. ISBN: 978-84-4152298-5

Recursos en Internet

Curso de Excel 2007 http://www.aulaclic.es/excel2007/index.htm Ayuda Excel http://www.ayudaexcel.com Pgina principal de Microsoft Office http://office.microsoft.com Anthony's Excel VBA Page http://www.anthony-vba.kefra.com Free VBA tutorials http://www.your-save-time-and-improve-quality-technologies-online-resource.com/free-vbatutorials.html VBA Express Portal http://www.vbaexpress.com

Autora del material.


Este material ha sido realizado por el profesor Dr. ngel Luis Garca Fernndez, y utilizado y adaptado por los profesores Carmen Martnez Cruz y Luis Gonzaga Prez Cordn.

Você também pode gostar