En este artículo, se explica el concepto de macro y su utilidad para ahorrar tiempo automatizando tareas que se efectúan con frecuencia. Se analizan los conceptos básicos relacionados con la creación y el uso de macros y también se mencionan mejoras en las macros en Microsoft Office Access 2007.
¿Qué es una macro?
Una macro es una herramienta que permite automatizar tareas y mejorar la funcionalidad de formularios, informes y controles. Por ejemplo, si agrega un botón de comando a un formulario, asocia el evento AlHacerClick del botón a una macro y esta macro contiene los comandos que desea que se ejecuten cada vez que se haga clic en el botón.
En Access, resulta útil considerar las macros como un lenguaje de programación simplificado que se escribe generando una lista de acciones a realizar. Para generar una macro, seleccionará cada acción en una lista desplegable y luego completará la información necesaria para cada acción. Las macros permiten mejorar la funcionalidad de formularios, informes y controles sin escribir código en un módulo de Visual Basic para Aplicaciones (VBA). Las macros proporcionan un subconjunto de los comandos disponibles en VBA y, para la mayoría de los usuarios, es más fácil generar una macro que escribir código de VBA.
Por ejemplo, suponga que desea iniciar un informe directamente desde un formulario de entrada de datos. Puede agregar un botón al formulario y, a continuación, crear una macro que inicie el informe. Puede tratarse de una macro independiente (un objeto independiente en la base de datos), que luego se asocie al eventoAlHacerClick del botón, o la macro puede estar incrustada directamente en el propio eventoAlHacerClick del botón (una característica nueva en Office Access 2007). De cualquiera de las dos maneras, cuando se haga clic en el botón, la macro se ejecutará e iniciará el informe.
Las macros se crean usando el Generador de macros, que se muestra en la siguiente ilustración
Para mostrar el Generador de macros
- En el grupo Otros de la ficha Crear, haga clic en Macro. Si el comando no está disponible, haga clic en la flecha situada debajo del botón Módulo o Módulo de clase y, a continuación, haga clic en Macro.
Explicación de las macros
El término "macro" se usa con frecuencia para referirse a los objetos macro independientes (es decir, los objetos que se ven en Macros en el panel de exploración) aunque, en realidad, un objeto macro puede contener varias macros. En tal caso, se conoce como grupo de macros. Un grupo de macros se representa en el panel de exploración como un objeto macro único, pero en realidad, un grupo de macros contiene más de una macro. Por supuesto, es posible crear cada macro en un objeto independiente, pero a menudo tiene sentido agrupar varias macros relacionadas en un solo objeto. El nombre que aparezca en la columna Nombre de macro sirve para identificar a cada macro.
Una macro consta de acciones de macro individuales. La mayoría de las acciones requieren argumentos. Además, puede asignar nombres a las macros de un grupo de macros y agregar condiciones para controlar la forma de ejecutarse cada acción. En las siguientes secciones se describen estas funciones de forma más detallada.
NOMBRES DE MACRO
Si un objeto macro sólo contiene una macro, no es necesario utilizar nombres de macro. Se puede hacer referencia a la macro por el nombre del objeto. No obstante, en el caso de un grupo de macros, se debe asignar un nombre único a cada macro. Si la columna Nombre de macro no está visible en el Generador de macros, haga clic en Nombres de macro
en el grupoMostrar/Ocultar de la ficha Diseño. Encontrará más información sobre la ejecución de macros en grupos de macros más adelante en este artículo.
ARGUMENTOS
Un argumento es un valor que proporciona información para la acción, como la cadena que se debe mostrar en un cuadro de mensaje, el control que se debe operar, etc. Algunos argumentos son necesarios y otros son opcionales. Los argumentos se pueden ver en el panel Argumentos de acción, en la parte inferior del Generador de macros
Una función nueva del Generador de macros de Office Access 2007 es la columna Argumentos, que permite ver (pero no editar) los argumentos de una acción en la misma línea de la acción. De esta forma, es un poco más fácil leer la macro porque ya no es necesario seleccionar una acción para mostrar los argumentos. Para mostrar la columna Argumentos, haga clic enArgumentos
en el grupo Mostrar/Ocultar en la ficha Diseño.
CONDICIONES
Una condición especifica ciertos criterios que se deben cumplir para que se pueda realizar una acción. Se puede utilizar cualquier expresión que pueda dar como resultado True/False o Sí/No. La acción no se ejecutará si la expresión devuelve como resultado False, No o 0 (cero). Si la expresión devuelve cualquier otro valor, la acción se ejecutará.
Para que una condición pueda controlar más de una acción, escriba unos puntos suspensivos (...) en la columna Condición para cada acción subsiguiente que desee que se aplique a la condición. Si la expresión devuelve False, No o 0 (cero), no se ejecutará ninguna de las acciones. Si la condición devuelve cualquier otro valor, todas las acciones se ejecutarán.
Para mostrar la columna Condiciones en el Generador de macros, en la ficha Diseño, en el grupo Mostrar u ocultar, haga clic en Condiciones
.
| USE ESTA EXPRESIÓN PARA LLEVAR A CABO LA ACCIÓN | SI: |
|---|---|
| [Ciudad]="París" | París es el valor de Ciudad en el campo en el formulario desde el cual se ejecutó la macro. |
| DCont("[IdPedido]", "Pedidos")>35 | Hay más de 35 entradas en el campo IdPedido de la tabla Pedidos. |
| DCont("*", "Detalles de pedido", "[IdPedido]=Formularios![Pedidos]![IdPedido]")>3 | Hay más de tres entradas en la tabla Detalles de pedido para las cuales el campo IdPedido de la tabla coincide con el campo IdPedido del formulario Pedidos. |
| [FechaEnvío] Entre #2-Feb-2006# Y #2-Mar-2006# | El valor del campo FechaEnvío del formulario desde el cual se ejecuta la macro no es anterior a 2-Feb-2006 y no es posterior a 2-Mar-2006. |
| Formularios![Productos]![UnidadesEnStock]<5 | El valor del campo UnidadesEnStock del formulario Productos es menor que cinco. |
| EsNulo([Nombre]) | El valor Nombre del formulario desde el que se ejecuta la macro esnulo (no tiene valor). Esta expresión es equivalente a [Nombre] Es Nulo. |
| [PaísRegión]="UK" Y Formularios![TotalVentas]![TotalPedidos]>100 | El valor en el campo País o región del formulario desde el que se ejecuta la macro es UK, y el valor del campo TotalPedidos del formulario TotalVentas es mayor que 100. |
| [País o región] En ("Francia", "Italia", "España") Y Longitud([CódigoPostal])<>5 | El valor en el campo País o región del formulario desde el cual se ejecuta la macro es Francia, Italia o España y el código postal no es de 5 caracteres de longitud. |
| CuadroMsj("¿Confirmar cambios?",1)=1 | Se hace clic en Aceptar en un cuadro de diálogo donde la funciónCuadroMsj muestra "¿Confirmar cambios?". Si hace clic en Cancelaren el cuadro de diálogo, Access omite la acción. |
| [Variables temporales]![ResultadoCuadroMsj]=2 | La variable temporal que se utiliza para almacenar el resultado de un cuadro de mensaje se compara con 2 (vbCancel=2). |
SUGERENCIA Para hacer que Access omita temporalmente una acción, especifique False como condición. Omitir temporalmente una acción puede ser de utilidad cuando esté tratando de solucionar problemas en una macro.
ACCIONES DE MACRO
Las acciones son los bloques de creación para generar las macros. Access proporciona una gran cantidad de acciones entre las que elegir, que habilitan una amplia variedad de comandos. Por ejemplo, algunas de las acciones más utilizadas sirven para abrir un informe, buscar un registro, mostrar un cuadro de mensaje o aplicar un filtro a un formulario o un informe.
Características nuevas de las macros en Office Access 2007
En versiones anteriores de Access, muchas funciones de las más habituales no se podían ejecutar sin escribir código de VBA. En Office Access 2007, se han integrado nuevas características y acciones de macro para ayudar a eliminar la necesidad de código. De esta forma, resulta más sencillo mejorar la funcionalidad de la base de datos y ésta gana en seguridad.
- Macros incrustadas Ahora tiene la posibilidad de incrustar macros en cualquiera de los eventos proporcionados por un formulario, un informe o un control. Una macro incrustada no está visible en el panel de exploración; pasa a formar parte del formulario, el informe o el control en el que se creó. Si crea una copia de un formulario, un informe o un control que contenga macros incrustadas, las macros también estarán presentes en la copia.
- Mayor seguridad Cuando el botónMostrar todas las acciones
no está resaltado en el Generador de macros, las únicas acciones de macro y argumentos de EjecutarComando que están disponibles para el uso son las que no requieren estado de confianza para ejecutarse. Una macro generada con estas acciones se ejecutará aunque la base de datos esté en modo deshabilitado (cuando no se permite la ejecución de VBA). Las bases de datos que contienen acciones de macro no incluidas en la lista de confianza (o las bases de datos que tienen código de VBA) requieren que se les conceda explícitamente el estado de confianza.
- Tratamiento de errores y depuración Office Access 2007 proporciona nuevas acciones de macro, como AlOcurrirError (similar a la instrucción "On Error" en VBA) y BorrarErrorDeMacro, que permiten realizar acciones específicas cuando se producen errores durante la ejecución de la macro. Además, la nueva acción de macro PasoAPaso permite habilitar el modo paso a paso en cualquier punto de la macro, para que se pueda observar cómo ejecuta la macro las acciones de una en una.
- Variables temporales Tres nuevas acciones de macro (DefinirVariableTemporal,QuitarVariableTemporal yQuitarTodasLasVariablesTemporales) permiten crear y usar variables temporales en las macros. Pueden utilizarse en expresiones condicionales para controlar la ejecución de macros, o para pasar datos a informes o formularios, o desde ellos, o para cualquier otro propósito que requiera un almacenamiento temporal para un valor. También se puede tener acceso a estas variables temporales en VBA, por lo que sirven además para comunicar datos a módulos de VBA y desde ellos.
En Office Access 2007, una macro o un grupo de macros puede estar contenida en un objeto macro (a veces denominado "macro independiente"), o una macro puede estar incrustada en cualquier propiedad de evento de un formulario, un informe o un control. Las macros incrustadas pasan a formar parte del objeto o el control en el que están incrustadas. Las macros independientes están visibles en el panel de exploración, en Macros; las macros incrustadas no.
CARACTERÍSTICAS DEL GENERADOR DE macros
El Generador de macros sirve para crear y modificar macros. Para abrir el Generador de macros:
- En el grupo Otros de la ficha Crear, haga clic en Macro. Si el comando no está disponible, haga clic en la flecha situada debajo del botón Módulo o Módulo de clase y, a continuación, haga clic en Macro.
Access presenta el Generador de macros.
Utilice el Generador de macros para crear la lista de acciones que desea que se lleven a cabo cuando se ejecute la macro. La primera vez que abra el Generador de macros, aparecerán las columnas Acción, Argumentos y Comentario.
En Argumentos de acción, es donde se especifican y editan los argumentos para cada acción de macro, cuando son necesarios. Aparece un cuadro que ofrece una breve descripción de cada acción o argumento. Haga clic en una acción o en un argumento de acción para leer su descripción en el cuadro.
En la tabla siguiente, se muestran los comandos que están disponibles en la ficha Diseño del Generador de macros.
| GRUPO | COMANDO | DESCRIPCIÓN |
|---|---|---|
| Herramientas | Ejecutar | Realiza las acciones enumeradas en la macro. |
| Paso a paso | Habilita el modo paso a paso. Cuando se ejecuta la macro en este modo, las acciones se realizan de una en una. Después de completar cada acción, se muestra el cuadro de diálogo Macro paso a paso. Haga clic en Paso a paso en el cuadro de diálogo para avanzar a la siguiente acción. Haga clic en Detener todas las macrospara detener la macro en curso y cualquiera otra que se esté ejecutando. Haga clic en Continuarpara salir del modo paso a paso y llevar a cabo las acciones restantes sin pararse. | |
| Generador | Si se especifica un argumento de acción que puede contener una expresión, este botón se habilita. Haga clic en Generador para abrir el cuadro de diálogo Generador de expresiones, que puede usar para crear la expresión. | |
| Filas | Insertar filas | Inserta una o varias filas de acción en blanco delante de las filas seleccionadas. |
| Eliminar filas | Elimina las filas de acción seleccionadas. | |
| Mostrar u ocultar | Mostrar todas las acciones |
Muestra más o menos acciones de macro en la lista desplegable Acción.
SUGERENCIA Si el botón Mostrar todas las acciones está seleccionado, haga clic en el botón Mostrar todas las acciones para cancelar la selección.
Si el botón Mostrar todas las accionesno está seleccionado, la lista más corta de acciones de macro de confianza está disponible.
|
| Nombres de macro | Muestra u oculta la columna Nombres de macro. Los nombres de macro son necesarios en los grupos de macros para distinguir unas macros de otras; en los demás casos, los nombres son opcionales. Para obtener más información, vea la sección Crear un grupo de macros, más adelante en este artículo. | |
| Condiciones | Muestra u oculta la columna Condición. Esta columna se utiliza para escribir expresiones que controlen cuándo se realizará una acción. | |
| Argumentos | Muestra u oculta la columna Argumentos. Esta columna muestra los argumentos para cada acción de macro y permite una lectura más cómoda de la macro. Si no se muestra la columna Argumentos, tendrá que hacer clic en cada acción y leer los argumentos enArgumentos de acción. No se pueden insertar argumentos en la columna Argumentos |
Crear una macro independiente
- En el grupo Otros de la ficha Crear, haga clic en Macro. Si el comando no está disponible, haga clic en la flecha situada debajo del botón Módulo o Módulo de clase y, a continuación, haga clic en Macro.
Se muestra el Generador de macros.
- Agregue una acción a la macro:
- En el Generador de macros, haga clic en la primera celda en blanco de la columnaAcción.
- Escriba la acción que desea utilizar o haga clic en la flecha para mostrar la lista de accionesdonde, a continuación, podrá seleccionar la acción que desea usar.
- En Argumentos de acción, especifique argumentos para la acción, si son necesarios. Para ver una descripción breve de cada argumento, haga clic en el cuadro del argumento y lea la descripción que aparece a la derecha del argumento.
- Si lo desea, puede escribir un comentario para la acción.
- Para agregar más acciones a la macro, muévase a otra fila de acción y repita el paso 2. Access lleva a cabo las acciones en el orden en que se enumeren.
Crear un grupo de macros
Si desea agrupar varias macros relacionadas en un objeto macro, puede crear un grupo de macros.
- En el grupo Otros de la ficha Crear, haga clic en Macro. Si el comando no está disponible, haga clic en la flecha situada debajo del botón Módulo o Módulo de clase y, a continuación, haga clic en Macro.
Se muestra el Generador de macros.
- En la ficha Diseño, en el grupo Mostrar u ocultar, haga clic en Nombres de macro
si no se ha seleccionado todavía. Aparece la columna Nombre de macro en el Generador de macros.
NOTA Los nombres de macro son necesarios en los grupos de macros para distinguir unas macros de otras. El nombre de macro aparece en la misma línea que la primera acción de la macro. La columna Nombre de macro se deja en blanco para las siguientes acciones de la macro. La macro finaliza en la siguiente entrada de la columna Nombre de macro.
- En la columna Nombre de macro, especifique un nombre para la primera macro del grupo de macros.
- Agregue las acciones que desea que realice la primera macro:
- En la columna Acción, haga clic en la flecha para presentar la lista de acciones.
- Haga clic en la acción que desea agregar.
- En Argumentos de acción, especifique argumentos para la acción, si son necesarios. Para ver una descripción breve de cada argumento, haga clic en el cuadro del argumento y lea la descripción que aparece a la derecha del argumento.
- Si lo desea, puede escribir un comentario para la acción.
- Desplácese a la columna Nombre de macrode la siguiente fila vacía y, a continuación, escriba un nombre para la siguiente macro del grupo de macros.
- Agregue las acciones que desea que realice la macro.
- Repita los pasos 5 y 6 para cada macro del grupo.
NOTAS
- Si ejecuta un grupo de macros haciendo doble clic en él en el panel de exploración o haciendo clic en Ejecutar
en el grupoHerramientas de la ficha Macro, Access sólo ejecuta la primera macro y se detiene cuando encuentra el segundo nombre de macro.
- Cuando guarde el grupo de macros, el nombre que especifique será el nombre del grupo completo. Este nombre aparece enMacros en el panel de exploración. Para hacer referencia a una macro individual incluida en un grupo de macros, use esta sintaxis:
nombre_de_grupo_de_macros.nombre_de_macro
Por ejemplo, Botones.Productos se refiere a la macro Productos en el grupo de macros Botones. En una lista de macros, tal como la lista de argumentos Nombre de macro de la acciónEjecutarMacro, Microsoft Access presenta la macro Productos como Botones.Productos.
Crear una macro incrustada
Las macros incrustadas se diferencian de las macros independientes en que las incrustadas se almacenan en las propiedades de evento de formularios, informes o controles. No se muestran como objetos en Macros en el panel de exploración. De este modo, la base de datos puede resultar más fácil de administrar, puesto que no hay que realizar un seguimiento de otros objetos macro que contienen macros para un formulario o un informe. Siga este procedimiento para crear una macro incrustada.
NOTA Las macros incrustadas no se pueden convertir a Visual Basic for Applications (VBA) usando la herramienta Convertir macros a Visual Basic
en el grupo Macro de la fichaHerramientas de base de datos. Si desea convertir en última instancia las macros a código VBA, puede resultar adecuado crear macros independientes en lugar de macros incrustadas. Entonces, podrá usar la herramienta Convertir macros a Visual Basic para convertirlas a VBA.
- Abra el formulario o el informe que contendrá la macro en la vista Diseño o en la vista Presentación. Para abrir un formulario o un informe, haga clic con el botón secundario en él en el panel de exploración y, a continuación, seleccione Vista Diseño
oVista Presentación
..
- Si no se muestra la hoja de propiedades, presione F4.
- Haga clic en el control o en la sección que contiene la propiedad de evento en la que desea incrustar la macro.
Para seleccionar el formulario o el informe entero, haga clic en Informe en la lista desplegable en la parte superior de la hoja de propiedades.
- En la hoja de propiedades, haga clic en la ficha Eventos.
- Haga clic en la propiedad de evento en la que desea incrustar la macro y, a continuación, seleccione
junto al cuadro.
- En el cuadro de diálogo Elegir generador, haga clic en Generador de macros y después en Aceptar.
- En el Generador de macros, haga clic en la primera fila de la columna Acción.
- En la lista desplegable Acción, haga clic en la acción que desee.
- Rellene los argumentos necesarios en el panel Argumentos de acción y, a continuación, vaya desplazándose a la siguiente fila de acción.
- Repita los pasos del 8 al 9 hasta que la macro se haya completado.
- Haga clic en Guardar
y después enCerrar
.
La macro se ejecutará cada vez que se desencadene el evento.
NOTA Access permite generar un grupo de macros como una macro incrustada. Sin embargo, sólo se ejecutará la primera macro del grupo cuando se desencadene el evento. Las macros subsiguientes se omiten, a no ser que se les llame desde dentro de la propia macro incrustada (por ejemplo, mediante la acciónAlOcurrirError).
No hay comentarios:
Publicar un comentario