Página: [1] 2
3
4 5
6 7
Siguiente
MACROS: Conceptos básicos
Esta página intenta ser una guía no solo para el
que se inicia en el tema VBA sino también para aquellos que, conociendo
el tema, no recuerdan tal o cual instrucción o buscan ampliar sus conocimientos
con otros ejemplos.
Los temas se encuentran separados en categorías,
desde un repaso por las instrucciones básicas, hasta macros más desarrolladas.
Desde la sección
Ejemplos también se pueden descargar
libros con más rutinas.
Como casi siempre hay más de una forma de programar
un evento, podrán observar que a veces se escribe una línea O la otra. Quiere
decir que puedo utilizar cualquiera de las 2. (¡Nunca las 2 juntas!)
Los temas están divididos en 2 grupos principales:
Conceptos e Instrucciones básicas (ver índice de contenidos en
margen izquierdo)
MACRO:
Una macro es un conjunto de instrucciones escritas en lenguaje Visual Basic,
siendo VBA (Visual Basic for Applications) una variante para el paquete Office.
Este conjunto de instrucciones nos permite
automatizar tareas que debemos efectuar periódicamente como así también aquellas
que nos pueden insumir tiempo de trabajo (casos como los de comparar datos o
filtrar por distintos criterios, etc.)
Ejemplos de tareas que podemos 'programar':
ocultar ciertas hojas al abrir el libro,
insertar hojas al llenar una celda con cierto dato, control de contenidos antes
de imprimir, crear copia del libro antes de guardar, enviar mails a criterio, y
tantas otras. Son todas tareas que pueden ser automatizadas mediante rutinas o
macros.
NOTA: las imágenes se obtuvieron
con Excel 2010 por lo que puede variar en otras versiones.
Excel 2003 o anterior: Las opciones de
Macros se encuentran desde menú Herramientas, Macros.
Excel 2007 o posterior: se encuentran en
ficha Programador (o Desarrollador). Si esta
ficha no se encuentra visible se la activa desde menú Archivo, Opciones,
Personalizar Cinta de Opciones y tildar la ficha Programador (o Desarrollador).

ELEMENTOS DE UNA MACRO:
para automatizar una tarea mediante una macro
bá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 CREAR UNA MACRO:
Aún sin conocimienos de programación VBA se puede llegar a crear una macro
sencilla. Excel cuenta con la herramienta 'Grabadora de macros'
(desde ficha Programador en versiones Excel 2007 en adelante, o menú
Herramientas, Macros en versión 2003 o anterior). También es posible activarla
desde el botón que se encuentra en la barra de estado.

Pasos a seguir: se activa la grabadora y se
acepta la ventana que nos informa del nombre que se le está asignando a la macro
y dónde será ubicada (optar por este libro). Se realizan manualmente todos los
pasos en la hoja Excel hasta obtener el resultado
deseado y se detiene la grabadora. Pasamos al Editor y entre los módulos se
hallará la macro recién creada.
Esta rutina puede ser ejecutada desde el mismo
Editor, menú Ejecutar, botón Ejecutar o tecla F5.
En temas siguientes se amplía este concepto.

DÓNDE COLOCAR UNA MACRO:
esto dependerá de lo que deba ejecutar nuestra rutina.
Si las instrucciones deben ejecutarse, por ejemplo, al abrir o cerrar un
libro, se colocan en el objeto ThisWorkbook (o EsteLibro según la
versión).
Si las instrucciones deben
ejecutarse al entrar o salir de una hoja o al seleccionar o modificar
una celda, se colocan en el objeto Hoja. Estos objetos se encuentran
en el margen izquierdo del Editor, en la ventana Proyecto-VBAProyect.
Si nuestra rutina será llamada
con un botón, atajo de teclado o desde otra rutina,
se colocará en un módulo (estando en el Editor, menú Insertar, Módulo).
Las instrucciones para los
controles de un formulario o Userforms se colocan en la sección Código
del mismo formulario.

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.
Página: [1] 2
3
4 5
6 7
Siguiente