Macros De Excel
inesdelmar2 de Mayo de 2015
2.590 Palabras (11 Páginas)236 Visitas
MACRO EXCEL PARA RESOLUCIÓN DE PROBLEMAS
Una macro consiste en una serie de instrucciones y acciones que se almacenan bajo un nombre y que puede ejecutarse en cualquier momento. Antes de grabar o escribir una macro, es muy importante planificar y tener muy claros los pasos y órdenes de que va a constar. Los errores que se cometan durante la grabación y sus correcciones, quedarán registradas y se repetirán cada vez que se ejecute la macro.
Instrucciones
Grabar macro y ejecutar
Seguimos los siguientes pasos: Señalamos la opción Macro en el menú Herramientas y pulsamos Grabar nueva macro. Aparecerá el cuadro de diálogo En el cuadro Nombre escribimos el nombre que va a identificar la macro. El primer carácter debe ser una letra, no se permiten espacios en blanco. Podemos utilizar una combinación de teclas para ejecutar la macro.
En el cuadro Guardar macro seleccionamos la ubicación de la macro. Si queremos que la macro está disponible siempre que se utilice Excel la almacenamos en el libro macros personales, dentro de la carpeta Iniciar. Pulsamos Aceptar y comienza la grabación. Para conseguir que una macro seleccione celda relativas, debemos pulsar en el botón Para dar por terminada la macro pulsamos en el botón Detener grabación en la barra de herramientas macro. Para ejecutar una macro podemos utilizar la combinación de las teclas abreviada o en el menú Herramientas Macro seleccionamos la macro creada.
ASIGNAR UNA MACRO A UN BOTÓN Es posible asignar un botón de una barra de herramientas a una macro de forma que baste pulsar en él para activar la macro.
Elementos de una Macro: para automatizar una tarea mediante una macrobásicamente se necesitan los siguientes elementos:
1- un espacio de trabajo donde escribir las instrucciones o rutinas que harán esas tareas: el Editor de Macros. A este espacio se accede con el atajo de teclado Alt+F11 o desde el menú Macros.
Una vez en ese 'espacio' del Editor escribiremos o copiaremos las rutinas y sea en módulos, o en el objeto HOJA o en ThisWorkbook, según el tipo de macro como veremos en el tema siguiente.
2- una acción que hará que la tarea programada se ejecute. A esto llamamos 'Eventos'que inician una macro y pueden ser: abrir o cerrar un libro, entrar o salir de una hoja, cambios o selección de celdas, antes de imprimir o guardar, el 'clic' en un botón de comando, al presionar un atajo de teclado, y otros más.
3- un lenguaje de programación. En Excel utilizamos VBA (Visual Basic para Aplicaciones)
4- Ocasionalmente un formulario llamado Userform donde trabajar para luego volcar los resultados en las hojas.
Cómo Ejecutar Una Macro: En el punto anterior se menciona que se necesita una 'acción' que dispare o ejecute una macro grabada.
Veamos los distintos casos:
1- Una acción automática resultado de un evento, ya sea a nivel libro, hoja, rango o celda.
En este grupo se encuentran las rutinas que se ejecutan en la apertura o cierre de libro, al entrar o salir de una hoja, al seleccionar o cambiar valores en celda …Son las que se colocan en el objeto HOJA o ThisWorkbook, como se menciona en tema anterior.
2- Al presionar un botón dibujado en la hoja. Podemos utilizar botones de la barra'Cuadro de controles o ActiveX' o de la barra 'Formularios'. En versión 2003 se encuentra en Menú Ver, Barras de Herramientas. En versión 2007 o posterior desde la ficha Programador.
Dibujamos el control en la hoja, ajustamos algunas propiedades como texto, tamaño, ubicación. Al hacer clic derecho sobre el control optamos por 'Ver código' o 'Asignar macro' según qué barra de herramientas hemos utilizado.
a- Cuadro de controles: al optar por 'Ver código' nos llevará al Editor, al objeto HOJA donde se generará automáticamente una rutina con estas 2 instrucciones:
Private Sub CommandButton1_click()
'aquí escribiremos nuestras instrucciones
End Sub
b- Formularios: ya debemos tener lista la rutina en un módulo del Editor y la asignaremos cuando optemos por 'Asignar macro'.
Las rutinas para este caso comienzan con 'Sub' y se ven son como este ejemplo:
Sub nombre_rutina()
'nuestras instrucciones
End Sub
3- Ejecutar un atajo de teclado: En estos casos tendremos ya una rutina como la del punto anterior (b) en un módulo del Editor.
Volvemos a la hoja Excel, y desde la ficha Programador, grupo Código, Macros, seleccionamos la nuestra desde la lista que se nos ofrece. Presionamos el botón 'Avanzadas' e ingresamos una letra, por ejemplo 't' (sin las comillas)
Nota: Si Excel ya tiene asignada esta letra la reemplazará por Ctrl+Mayúsc +t Esto significa que en el momento que necesitemos que la macro se ejecute presionaremos juntas las teclas Ctrl + t (o Ctrl+Mayusc+t)
4- Desde el menú Macros de la ficha Programador, grupo Código: buscamos la macro desde la lista y presionamos el botón Ejecutar.
REFERENCIAS: Veamos algunos ejemplos para observar los diferentes modos de referirnos a libros, hojas y celdas.
Nota: Una vez copiada una instrucción o código en el Editor, colocar el cursor sobre la palabra en negrita y presionar F1 para acceder a la Ayuda Excel. Allí se encontrarán más explicaciones y ejemplos para cada instrucción.
Hipervínculos
1. Pulsamos ALT+F11 y abrimos el editor VBA.
2. Una vez ahí, nos vamos al menú horizontal, “insertar” + “modulo”. Añadiremos copiando y pegando, la función “extraer_anchor”:
Function Extraer_Anchor(Rango As Range)
Dim anchor As String
texto = Rango.Hyperlinks(1).Name
Extraer_Anchor = texto
End Function
Esta función lo que hará será extraer el anchor text que contiene un vínculo y mostrarlo sin vínculo en la celda que indiquemos.
Visualmente el editor VBA se vería como sigue:
3. Ahora ya podemos cerrar el editor VBA pulsando ALT+Q, o bien, accediendo al menú horizontal en “Archivo” y “Cerrar y Volver a Excel”.
4. Y voilá! Ya podemos hacer uso de esta función llamada “extraer_anchor”, tal y como muestra el pantallazo
Cuyo resultado sería este:
Ahora si queremos hacer lo contrario, es decir, extraer el hipervínculo en vez del anchor text, repetimos el proceso desde el primer paso, pero en este caso añadimos la función “extraer_hipervinculo”:
Function Extraer_Hipervinculo(Rango As Range)
Dim Hipervinculo As String
Hipervinculo = Rango.Hyperlinks(1).Address
Extraer_Hipervinculo = Hipervinculo
End Function
Y siguiendo con el ejemplo del pantallazo, la información extraída quedaría así:
Y la celda quedaría rellena con el vínculo de la celda D4, algo como:
Macros que te servirán para dar formato a textos y a celdas en Excel.
Dar formato a textos o a celdas por medio de Macros es algo indispensable para cualquiera que se quiere iniciar en este maravilloso mundo de Macros en Excel. Los siguientes códigos te ayudarán a crear procedimientos para dar formato a tus textos.
Estos códigos trabajan con la celda activa.
ActiveCell.Font.Bold = True ...' Convierte en Negritas la fuente (texto) de la celda activa.
ActiveCell.Fonto.Bold = False ...' Desactiva las Negritas de la celda activa.
Si quieres especificar la celda que tiene que cambiar a Negritas entonces debes poner Range, Ejemplo:
Range("A1").Font.Bold = True ...'Convierte en negritas la fuente de la celda A1.
Para convertir a negritas un rango de celdas escribimos:
Range("A1:A10").Font.Bold = True ...'Convierte en negritas la fuente del rango de celdas A1:A10.
También puedes seleccionar la celda A1 y después cambiar el formato a Cursiva de la celda seleccionada:
Range("A1").Select ...'Selecciona la celda A1
Selection.Font.Italic = True ...'Convierte a Cursiva la celda seleccionada
Para subrayar el texto de la celda A1 utilizamos:
Range("A1").Font.Underline = xlUnderlineStyleSingle
Si queremos doble subrayado:
Range("A1").Font.Underline = xlUnderlineStyleDouble
Podemos también cambiar el nombre y tamaño de la fuente de la celda A1:
Range("A1").Font.Size = 16
Range("A1").Font.Name = "Arial"
O el color de la fuente de A1:
Range("A1").Font.ColorIndex
...