Macros en Excel
Excel es un programa excelente. Y muchos de nosotros lo hemos podido comprobar. Sin embargo, no siempre sabemos aprovechar su gran potencial. Una de las herramientas ms tiles del Excel, es su capacidad de trabajar con el lenguaje de programacin Visual Basic, aunque solamente con una parte. Si aprendemos a manejarlo, podremos resolver nuestros problemas de una forma ms fcil y rpida. Para dominar la programacin con Visual Basic tenemos que dejar fluir nuestra creatividad e inteligencia, ya que as lograremos crear soluciones para todos nuestros requerimientos. Definicin de Macro: Serie de instrucciones almacenadas que puede ser activada de diversas formas en una planilla Excel. A continuacin ejemplificaremos una macro sencilla. Ejemplo 1: Frecuentemente realizo en mi plantilla los siguientes pasos:
Selecciono el fuente (tipo de letra) con el que deseo trabajar. Selecciono el tamao de letra. Selecciono el estilo de letra (en este caso remarcado, o negrita) Selecciono el color de la letra.
Para evitar el repetir da a da estos pasos, los almacenar en una macro, as cuando yo ejecute la macro, se ejecutarn estos pasos que acabo de describir. A continuacin aprenderemos a generar una macro para luego ejecutarla.
1.
Nos posicionamos con el cursor en el casillero A1 y escribimos Mi primera macro (est claro que si no les gusta lo cursi pueden poner lo que deseen). Una vez tipeada la informacin, presionamos Enter.
2.
Presionamos el botn con el smbolo de Office en la esquina superior izquierda de la pantalla.
1.
Ahora seleccionamos Excel Options, y luego en la opcin Popular cliqueamos en el checkbox Show Developer tab in the Ribbon.
2.
El prximo paso una vez realizada esta habilitacin es volver a la pgina principal del Excel y seleccionar el tab Developer. Luego nos posicionaremos nuevamente en el casillero A1 con el cursor.
3.
Cliqueamos ahora la opcin Record Macro para que se nos despliegue una ventana con la informacin que le asignaremos a nuestra macro. Primero ingresamos un nombre para ella. Segundo, ingresamos una tecla, la cual presionada junto a la tecla Control nos permitirn
ejecutar la macro. En tercer lugar se nos pide que escojamos dnde se guardar el programa. Finalmente podemos detallar de qu se trata nuestra macro en la seccin Description. 4. Una vez presionado el botn Ok, la macro automticamente comienza a grabar. Por ende, cada accin que realicemos quedar registrada como un paso dentro de la macro hasta que le demos la orden de dejar de grabar. Como los pasos que quiero que grabe son los que mencion anteriormente, har lo siguiente: Configurar el fuente de la letra de tipo Arial. Luego, elijo tamao de letra 10. A continuacin habilito el estilo de letra remarcado, y finalmente, escojo el color de letra azul. 5. Si hemos terminado de ejecutar las acciones que queremos que realice la macro, entonces volvemos al tab Developer y cliqueamos en Stop Recording. Ahora nuestra primera macro est exitosamente creada. 6. Slo nos falta convocarla cuando lo deseemos. Para esto contamos con varias maneras. Una es presionar la tecla Control junto a la tecla que ingresamos cuando creamos la macro. Otra forma es posicionarnos en algn casillero y luego presionar el botn fx que est en la parte superior del Excel y que nos abre una ventana de dilogo en la que podemos buscar el nombre de nuestra macro (para esto debemos especificar que deseamos buscar en todas las categoras). Y una tercera manera es clickear el tab Developer nuevamente, y luego seleccionar Macros (imagen inferior) para que nos d la lista de todos los programas que hemos creado.
Aclaremos que podemos crear todas las macros que deseemos sin ningn problema.
Ahora que ya tenemos un ejemplo para guiarnos, vamos a practicar y practicar el crear macros simples. Una vez que dominemos su creacin bsica, podremos adentrarnos en sus aspectos avanzados.
Ejercicios: 1. Generar una macro que se active con las teclas Control + d que escriba 12345, con fuente Tahoma y tamao de letra 12. 2. Generar una macro que se active con las teclas Control + z que permita seleccionar un archivo para abrirlo en Excel. 3. Generar una macro que se active con las teclas Control + w que permita insertar un WordArt.
Observacin: Los pasos a seguir y las imgenes expuestas corresponden a Microsoft Excel 2007. An as, las modificaciones entre versiones son mnimas.
Con lo que hemos visto hasta aqu, algunos podran pensar que no es interesante este asunto de las macros, pero este es slo el comienzo Ahora para no tener problemas con las macros que creamos anteriormente, cerraremos la ventana de Microsoft Excel y abriremos una nueva plantilla.
El conocimiento que adquiriremos ahora, es el entendimiento del cdigo que generan las macros.
En primer lugar crearemos una nueva macro que realice los siguientes pasos:
Una vez que nos posicionemos con el cursor en el casillero B1, presionamos el botn Record Macro, con lo que nos emerge la ventana de creacin de la macro. Seleccionamos una tecla para su ejecucin rpida posterior y cliqueamos OK.
Nos trasladamos al casillero A1 y escribimos ABC. Ahora, luego de presionar Enter, detenemos la grabacin de la macro cliqueando el botn Stop Recording.
Ahora Excel ha guardado los pasos que le mostramos y ha generado un cdigo, el cual analizaremos a continuacin.
Tenemos dos opciones: seleccionar el tab Developer y cliquear el botn Visual Basic, o, cliquear la tecla Alt y a la vez la tecla de funcin F11. Realizando uno de estos pasos, Excel nos abre el editor de Visual Basic. Por defecto, dentro del editor de Visual Basic, deberan aparecer dos ventanas: la ventana Project y la ventana Properties. En caso contrario, las activamos desde la opcin View en la Barra de Herramientas.
En la ventana Project daremos doble click en Modules (o podramos presionar el signo + al costado) para activar la opcin Module1. Ingresamos a esta opcin y veremos en una nueva ventana, el editor de Visual Basic, el cdigo de la macro que generamos de la siguiente forma:
Sub Macro1() Macro1 Macro Keyboard shortcut: Ctrl+d Range(A1).Select ActiveCell.FormulaR1C1 = ABC Range(A2).Select End Sub
El significado de este cdigo lo explicaremos a continuacin:
Sub y End Sub indican el inicio y el final del entero procedimiento de nuestra macro. Todo lo que aparece con comilla simple al inicio, nos seala que es un comentario, en otras palabras, el texto escrito despus de la comilla simple no se toma en cuenta a la hora de correr la macro.
Range(A1).Select indica que nuestra primera accin fue posicionarnos en el casillero A1. La instruccin Range nos permite movernos a otro casillero. ActiveCell.FormulaR1C1 = ABC Estas sentencias nos indican que en el casillero en el que estamos posicionados se escribir el texto ABC. Todo lo que aparece entre comillas es un valor de texto.
Range(A2).Select Ahora usamos estas instrucciones para posicionarnos en el casillero A2. Esto sucede porque presionamos la tecla Enter despus de introducir el texto.
Ejercicios: 1. Generar una macro que escriba un texto en un casillero y que luego le acreciente el tamao de la letra y observar los cambios en el cdigo Visual Basic de la macro. 2. Generar una macro que escriba un texto en un casillero y que luego lo centre y observar los cambios en el cdigo Visual Basic de la macro. 3. Generar una macro que escriba un texto en una casillero y que luego le cambie el estilo a este por un estilo remarcado y observar los cambios en el cdigo Visual Basic de la macro. Cdigo bsico ms frecuentes en las macros:
Posicionarse en algn casillero Range(A1).Select Escribir en un casillero ActiveCell.FormulaR1C1= texto Estilo remarcado [Link] = True Estilo cursivo [Link] = True Estilo subrayado [Link] = xlUnderlineStyleSingle Centrar texto With Selection .HorizontalAlignment = xlCenter End With End With End With Alinear a la izquierda With Selection Alinear a la derecha With Selection Fuente With [Link] Copiar [Link] Pegar [Link] Cortar [Link] Insertar fila [Link] Eliminar fila [Link] Insertar columna [Link] Eliminar columna [Link] Abrir un archivo Excel [Link] Filename:=C:Mis [Link] Creacin y programacin de formularios Tamao de letra With [Link] .HorizontalAlignment = xlLeft .HorizontalAlignment = xlRight End With End With .Size = 10
.Name = Arial
La creacin y programacin de formularios para Excel es un tema ms avanzado. Un formulario es una plantilla que recolecta informacin que es necesaria para alcanzar cierto objetivo. Para programar un formulario utilizaremos controles, los cuales responden a sucesos especficos.
A continuacin aprenderemos a crear un formulario en Excel para luego programarlo:
Ingresamos al editor de Visual Basic y vamos a la opcin Insert y luego UserForm. Ahora que se gener un formulario, podemos verlo en la ventana Project. Si cliqueamos sobre el formulario una vez, nos deber aparecer la ventana Toolbox. Si esto no sucede, elija la opcin View y luego Toolbox.
Arrastramos hacia el formulario el control Label. Se ver en el formulario un rectngulo que dir Label1. Si vamos a la ventana Properties en la opcin Caption podremos cambiar estas palabras. Le pondremos Nombre.
Ahora arrastraremos el control TextBox desde la ventana Toolbox hacia el formulario. Este control ser un rectngulo blanco y vaco.
Lo siguiente es repetir los dos pasos anteriores pero con Labels que digan: Direccin y Telfono.
Ahora arrastraremos desde la ventana Toolbox el control CommandButton hacia el formulario. En la ventana Properties le cambiaremos el texto por Insertar.
Nuestro prximo paso es presionar doble click en el control Textbox1 para poder programarlo. Le insertaremos el siguiente cdigo luego de haber borrado lo que hubiese escrito: Private Sub TextBox1_Change() Range(A3).Select ActiveCell.FormulaR1C1 = Textbox1 End sub
Esto indica que debe posicionarse en el casillero A3, tome lo que haya escrito all, y luego lo introduzca al control TextBox1.
Para volver al formulario debemos hacer doble click en UserForm1 en la ventana Project.
Ahora presionamos doble click en el control TextBox2 para programarlo y le insertamos el siguiente cdigo luego de haber borrado lo que hubiese escrito: Private Sub TextBox2_Change() Range(B3).Select ActiveCell.FormulaR1C1 = TextBox2 End Sub
Esto indica que debe posicionarse en el casillero B3, tome lo que haya escrito all, y luego lo introduzca al control TextBox2.
Una vez que hemos vuelto al formulario, presionamos doble click en el control TextBox3 para programarlo y le insertamos el siguiente cdigo luego de haber borrado lo que hubiese escrito: Private Sub TextBox3_Change() Range(C3).Select ActiveCell.FormulaR1C1 = Textbox3 End Sub
Esto indica que debe posicionarse en el casillero C3, tome lo que haya escrito all, y luego lo introduzca al control TextBox3.
Una vez que hemos vuelto al formulario, presionamos doble click en el control CommandButton para programarlo y le insertamos el siguiente cdigo luego de haber borrado lo que hubiese escrito: Private Sub CommandButton1_Click() [Link] TextBox1 = Empty TextBox2 = Empty TextBox3 = Empty [Link] End Sub
Ahora tenemos que presionar la opcin Run y luego Run Sub/UserForm o en su defecto presionar la tecla F5 para activar el formulario.
Listo! Todo lo que escribamos en el formulario quedar registrado en la planilla de Excel. Si presionamos el botn Insertar se insertar un nuevo rengln y se limpiarn los textbox para volver a digitar nuevos datos.