Crear menús personalizados y menús contextuales mediante macros

Puede usar macros de Access para crear menús contextuales personalizados que aparecen al hacer clic con el botón derecho en formularios, informes o controles individuales. También puede crear menús personalizados que aparecen en la cinta de opciones para formularios o informes específicos.

Para crear un menú mediante macros, realice tres pasos principales:

  1. Cree un objeto de macro con submacros que contengan los comandos de menú.

  2. Cree otro objeto de macro que cree el propio menú.

  3. Adjunte el menú a un control, un formulario, un informe o a la base de datos en su conjunto.

Las siguientes secciones le guían por estos pasos en detalle.

Nota: ¿Usa Access 2007? Si es así, vaya a la sección Crear menús contextuales personalizados en Access 2007.

Sugerencia: Si desea obtener información sobre cómo crear menús contextuales personalizados en Access con código Visual Basic para Aplicaciones (VBA), vea el artículo Crear un menú contextual para un formulario, controlde formulario o informe.

Paso 1: Crear un objeto de macro con submacros que contengan los comandos de menú

En este paso, creará un objeto de macro con submacros, cuyo submacro será un comando independiente en el menú contextual.

¿Qué es un submacro?

Puede usar un submacro dentro de un objeto de macro para definir un conjunto de acciones de macro. Los submacros dentro de un objeto de macro se pueden llamar por separado de varios eventos de control y objeto. Los submacros individuales de un objeto de macro tienen un nombre único y pueden contener una o más acciones de macro.

  1. En el grupo Macros y código de la pestaña Crear, haga clic en Macro.

  2. Para cada comando que desee en el menú contextual personalizado:

    1. Agregue una instrucción Macro de Submacro a la ventana de diseño de macros y asigne un nombre al submacro que quiera mostrar en el menú contextual (por ejemplo, "Imprimir" o "Actualizar").

      Sugerencia: Para crear una tecla de acceso para que pueda usar el teclado para elegir el comando, escriba una yand (&) antes de la letra que desea que sea la clave de acceso en el nombre del comando (por ejemplo, "&Actualizar"). Esta letra estará subrayada en el menú.

    2. Dentro del submacro, seleccione la primera acción que le gustaría realizar al hacer clic en el comando del menú contextual.

    3. Si desea realizar más acciones al seleccionar este comando, agrégolas como acciones de macro independientes dentro del mismo submacro.

  3. Guarde y asigne un nombre al objeto de macro, por ejemplo, mcrShortcutMenuCommands.

    En la ilustración siguiente se muestra un objeto de macro de ejemplo con tres submacros para un menú personalizado o un menú contextual.

    Captura de pantalla de la ventana de diseño de macros de Access con tres instrucciones submacro.

Paso 2: Crear un segundo objeto de macro que cree el menú

Este paso puede parecer redundante, pero para crear el menú contextual desde el objeto de macro que creó en el paso 1, debe crear un segundo objeto de macro que contenga la acción de macro AddMenu. Esta acción de macro a veces se denomina "macro de menú".

  1. En el grupo Macros y código de la pestaña Crear, haga clic en Macro.

  2. En el cuadro combinado Agregar nueva acción de la ventana de diseño de macros, seleccione Agregarmenú.

  3. En el cuadro de argumento Nombre de menú de la acción de macro Agregarmenú, escriba el nombre del menú (por ejemplo, "Comandos de formulario"). Este argumento no es obligatorio, pero se recomienda si, en el paso 3, tiene previsto agregar el menú a una pestaña de la cinta (como la pestaña Complementos de un formulario o informe). Si el menú se agrega como un menú contextual en el paso 3, se omitirá el argumento Nombre del menú.

  4. En el cuadro de argumento Nombre de macro de menú, escriba el nombre del objeto de macro que creó en el paso 1.

  5. Guarde y asigne un nombre a este segundo objeto de macro, por ejemplo, mcrAddShortcutMenu.

    En la ilustración siguiente se muestra un objeto de macro de menú de ejemplo que crea el menú que hemos diseñado en el paso 1.

    Captura de pantalla de un objeto de macro de Access con una acción de macro AddMenu.

Paso 3: Adjuntar el menú a un control, formulario, informe o base de datos

En función de dónde quiera que aparezca el menú, use uno o varios de los procedimientos siguientes.

Agregar el menú a la Add-Ins de un formulario o informe

Use este procedimiento si desea que el menú aparezca en la pestaña Complementos de un formulario o informe específico.

  1. En el panel de navegación, haga clic con el botón derecho en el formulario o informe donde quiera que aparezca el menú y, a continuación, haga clic en Vista Diseño.

  2. En el grupo Herramientas de la pestaña Diseño, haga clic en Hoja de propiedades.

  3. Seleccione todo el objeto seleccionando Formulario o Informe en la lista en la parte superior del panel de tareas Hoja de propiedades.

  4. En la pestaña Otros de la hoja de propiedades, en el cuadro de propiedades Barra de menús, escriba el nombre del objeto de macro que creó en el paso 2 (en este ejemplo, "mcrAddShortcutMenu").

  5. Guarde el formulario o informe de los cambios.

    La próxima vez que abra el formulario o informe, la pestaña Complementos aparecerá en la cinta de opciones. Haga clic en la pestaña para ver el menú, como se muestra en la siguiente ilustración:

    Captura de pantalla de la cinta complementos en Access

    Para obtener más información sobre las técnicas de personalización de la cinta, como agregar pestañas personalizadas u ocultar las pestañas predeterminadas, vea el artículo Crear una cinta de opciones personalizada en Access.

Agregar el menú como un menú contextual para un formulario, informe o control

Use este procedimiento si desea que el menú aparezca al hacer clic con el botón derecho en un formulario, informe o control específicos.

  1. En el panel de navegación, haga clic con el botón derecho en el formulario o informe donde quiera que aparezca el menú contextual y, a continuación, haga clic en Vista Diseño.

  2. En el grupo Herramientas de la pestaña Diseño, haga clic en Hoja de propiedades.

  3. Seleccione el control u objeto al que desea adjuntar el menú contextual.

    Para seleccionar todo el objeto, seleccione Formulario o Informe en la lista en la parte superior del panel de tareas Hoja de propiedades.

  4. En la pestaña Otros de la hoja de propiedades, en el cuadro de propiedades Barra de menús contextuales, escriba el nombre del objeto de macro que creó en el paso 2 (en este ejemplo, "mcrAddShortcutMenu").

  5. Asegúrese de que la propiedad Menú contextual está establecida en Sí.

  6. Guarde el formulario o informe de los cambios.

    La próxima vez que abra el formulario o informe y, después, haga clic con el botón derecho en el formulario, informe o control, verá el menú contextual con los comandos asociados, como se muestra en la siguiente ilustración:

    Captura de pantalla de un menú contextual en un formulario de Access

Agregar el menú como un menú contextual global

Este procedimiento reemplaza todos los menús contextuales predeterminados de la base de datos actual. Los menús contextuales personalizados que haya adjuntado a formularios, informes o controles específicos no se verán afectados.

  1. Haga clic en Archivo > Opciones.

  2. En el cuadro de diálogo Opciones de Access, haga clic en Base de datos activa.

  3. En Opciones de cinta de opciones y barra de herramientas , en el cuadro Barra de menús contextuales, escriba el nombre de la macro que creó en el paso 2 (en este ejemplo, "mcrAddShortcutMenu").

  4. Haga clic en Aceptar para guardar los cambios en el cuadro de diálogo Opciones de Access.

  5. Cierre y vuelva a abrir la base de datos para que los cambios sun efecto.

Los menús contextuales personalizados reemplazan los menús contextuales predeterminados para los objetos a los que están adjuntos. Si desea conservar determinados comandos de Access para usarlos en estos menús, use la acción de macro EjecutarComando para colocar los comandos en los objetos de macro de los menús en los que desee.

Un menú contextual personalizado que se adjunta a un control reemplaza cualquier otro menú contextual personalizado definido en la base de datos. Un menú contextual personalizado que se adjunta a un formulario o informe reemplaza un menú contextual global personalizado.

Al especificar una macro de menú para un formulario o informe o para la base de datos, Access ejecuta esta macro de menú siempre que se abre el formulario, informe o base de datos. Si realiza cambios en el objeto de macro de menú o en el objeto de macro que define sus comandos mientras el formulario, informe o base de datos está abierto, debe cerrar el formulario, informe o base de datos y volver a abrirlo para ver los cambios.

Para crear un submenú en una lista de comandos del menú contextual, siga el paso 1 para crear un objeto de macro independiente que contenga solo los comandos de submenú, como se muestra en la siguiente ilustración:

Captura de pantalla de una macro en Access con dos submacros

A continuación, siga el paso 1 de nuevo para definir los comandos para el objeto de menú de nivel superior. Agregue el submenú como un elemento en el objeto de macro de nivel superior mediante la acción de macro Agregarmenú. En la ilustración siguiente se muestra el objeto de macro de un menú que contiene un submenú. El tercer submacro de este objeto de macro de ejemplo crea el submenú Exportar a... (mcrShortcutSubMenuCommands).

Captura de pantalla de una macro de Access con cuatro submacros

En la siguiente ilustración se muestra el menú contextual completado resultante con un submenú:

Captura de pantalla de un menú contextual con un submenú

Puede crear varios niveles de submenús mediante acciones de macro AddMenu en los objetos de macro para cada nivel de menú. Asegúrese de proporcionar un valor para el argumento Nombre del menú para cada acción AgregarMenú, de lo contrario, el submenú aparecerá como una línea en blanco en el menú de nivel superior.

Las condiciones de expresión de macros que usan bloques If/Then/Else solo se admiten en el objeto de macro de menú de nivel superior. En otras palabras, puede usar una expresión de condición en un objeto de macro de menú para determinar si se mostrará un menú o un menú contextual determinados, pero solo para los menús del nivel superior. No puede usar expresiones de condición para mostrar u ocultar comandos o submenús en los menús. También puede usar una expresión de condición para ocultar o mostrar un menú contextual personalizado o un menú contextual global.

Opcionalmente, la macro de menú que cree en el paso 2 puede formar parte de un objeto de macro. Por ejemplo, si tiene varios menús contextuales para diferentes objetos o controles, puede crear un único objeto de macro que contenga todas las macros de menú necesarias. Asegúrese de tener un nombre único para cada submacro. En el paso 3, use la siguiente notación para hacer referencia a la macro: MacroObjectName.SubmacroName. Por ejemplo, mcrAddShortcutMenus.AddMenu2.

Volver al principio

Crear menús contextuales personalizados en Access 2007

La ventana de diseño de macros es diferente en Access 2007 en comparación con versiones posteriores, por lo que expanda las siguientes secciones para seguirla si usa Access 2007.

En este paso, creará un grupo de macros, cuya macro será un comando independiente en el menú contextual.

¿Qué es un grupo de macros?

Un grupo de macros es un único objeto de macro que contiene dos o más macros independientes. Las macros individuales se identifican escribiendo un nombre para cada macro en la columna Nombres de macros. En la siguiente ilustración, Macro3 es un grupo de macros. NotFoundMsg y FoundMsg son macros individuales dentro del grupo, cada macro que consta de dos acciones de macro.

Ejemplo de grupo de macros

Nota: La columna Nombre de macro está oculta de forma predeterminada. Para mostrar la columna Nombre de macro, en la pestaña Diseño, en el grupo Mostrar u ocultar, haga clic en Nombres de macros.

  1. En el grupo Otros de la pestaña Crear, haga clic en Macro. Si el comando no está disponible, haga clic en la flecha que aparece bajo los botones Módulo o Módulo de clase y luego haga clic en Macro.

  2. En la pestaña Diseño, en el grupo Mostrar u ocultar, haga clic en Nombres de macros para mostrar la columna Nombre de la macro.

  3. Para cada comando que desee en el menú contextual personalizado:

    • En la columna Nombre de macro, escriba el texto que desea mostrar en el menú contextual (por ejemplo, "Imprimir informe" o "Guardar").

      1. Nota: Para crear una tecla de acceso para que pueda usar el teclado para elegir el comando, escriba una yand (&) antes de la letra que desea que sea la clave de acceso en el nombre del comando (por ejemplo, "&Guardar"). Esta letra estará subrayada en el menú.

    • En la columna Acción, seleccione la primera acción que le gustaría realizar al hacer clic en el comando del menú contextual.

    • Si hay más acciones que desea realizar al seleccionar este comando, agrégrelas en las líneas siguientes. Para cada acción posterior, deje la celda Nombre de la macro en blanco.

      1. Nota: Para crear una línea entre dos comandos de menú, escriba un guión (-) en la columna Nombre de macro entre los comandos de menú adecuados.

  4. Guarde y asigne un nombre a la macro, por ejemplo, mcrShortcutMenuCommands.

En la siguiente ilustración se muestra un grupo de macros de ejemplo para un menú personalizado o un menú contextual.

Un grupo de macros para un menú, en la vista Diseño

Este paso puede parecer redundante, pero para crear el menú contextual desde el grupo de macros que creó en el paso 1, debe crear una segunda macro que contenga la acción de macro Agregarmenú. Esta macro a veces se denomina "macro de menú".

  1. En el grupo Otros de la pestaña Crear, haga clic en Macro. Si el comando no está disponible, haga clic en la flecha que aparece bajo los botones Módulo o Módulo de clase y luego haga clic en Macro.

  2. En la primera línea de la macro, seleccione AgregarMenú en la lista Acción.

  3. En Argumentos de acción, en el cuadro Nombre del menú, escriba el nombre del menú (por ejemplo, "Comandos de informe"). Este argumento no es obligatorio, pero se recomienda si, en el paso 3, tiene previsto agregar el menú a una pestaña de la cinta (como la pestaña Complementos de un formulario o informe). Si el menú se agrega como un menú contextual en el paso 3, se omitirá el argumento Nombre del menú.

  4. En el cuadro Nombre de macro de menú, escriba el nombre de la macro que creó en el paso 1.

  5. Guarde y asigne un nombre a la macro, por ejemplo, mcrAddShortcutMenu.

En la ilustración siguiente se muestra una macro de menú de ejemplo que crea el menú que hemos diseñado en el paso 1.

Una macro de menú en la vista Diseño

En función de dónde quiera que aparezca el menú, use uno o varios de los procedimientos siguientes.

  • Agregar el menú a la Add-Ins de un formulario o informe

    Use este procedimiento si desea que el menú aparezca en la pestaña Complementos de un formulario o informe específico, como se muestra en la siguiente ilustración:

    Ficha Complementos, con un menú personalizado

    1. En el panel de navegación, haga clic con el botón derecho en el formulario o informe donde quiera que aparezca el menú y, a continuación, haga clic en Vista Diseño.

    2. En la pestaña Diseño, en el grupo Mostrar u ocultar, haga clic en Hoja de propiedades.

    3. Seleccione todo el objeto seleccionando Formulario o Informe en la lista en la parte superior del panel de tareas Hoja de propiedades.

    4. En la pestaña Otros de la hoja de propiedades, en el cuadro de propiedades Menú contextual, escriba el nombre de la macro que creó en el paso 2 (en este ejemplo, "mcrAddShortcutMenu").

      La próxima vez que abra el formulario o informe, la pestaña Complementos aparecerá en la cinta de opciones. Haga clic en la pestaña para ver el menú.

      Para obtener más información sobre las técnicas de personalización de la cinta, como agregar pestañas personalizadas u ocultar las pestañas predeterminadas, vea el artículo Crear una cinta de opciones personalizada en Access.

      La cinta de opciones es un componente de la interfaz de usuario de Microsoft Office Fluent.

  • Agregar el menú como un menú contextual para un formulario, informe o control

    Use este procedimiento si desea que el menú aparezca al hacer clic con el botón derecho en un formulario, informe o control específicos, como se muestra en la siguiente ilustración:

    Un menú contextual sencillo

    1. En el panel de navegación, haga clic con el botón derecho en el formulario o informe donde quiera que aparezca el menú contextual y, a continuación, haga clic en Vista Diseño.

    2. En la pestaña Diseño, en el grupo Mostrar u ocultar, haga clic en Hoja de propiedades.

    3. Seleccione el control u objeto al que desea adjuntar el menú contextual.

      Nota: Para seleccionar todo el objeto, seleccione Formulario o Informe en la lista en la parte superior del panel de tareas Hoja de propiedades.

    4. En la pestaña Otros de la hoja de propiedades, en el cuadro de propiedades Barra de menús contextuales, escriba el nombre de la macro que creó en el paso 2 (en este ejemplo, "mcrAddShortcutMenu").

  • Agregar el menú como un menú contextual global

    Este procedimiento reemplaza todos los menús contextuales predeterminados de la base de datos actual. Los menús contextuales personalizados que haya adjuntado a formularios, informes o controles específicos no se verán afectados.

    1. Haga clic en el Microsoft Office y, a continuación, haga clic en Opciones de Access.

    2. En el cuadro de diálogo Opciones de Access, haga clic en Base de datos activa.

    3. En Opciones de cinta de opciones y barra de herramientas , en el cuadro Barra de menús contextuales, escriba el nombre de la macro que creó en el paso 2 (en este ejemplo, "mcrAddShortcutMenu").

  • Los menús contextuales personalizados reemplazan los menús contextuales predeterminados para los objetos a los que están adjuntos. Si desea conservar determinados comandos de Access para usarlos en estos menús, use la acción EjecutarComando para colocar los comandos en los grupos de macros de los menús en los que desee.

  • Un menú contextual personalizado que se adjunta a un control reemplaza cualquier otro menú contextual personalizado definido en la base de datos. Un menú contextual personalizado que se adjunta a un formulario o informe reemplaza un menú contextual global personalizado.

  • Al especificar una macro de menú para un formulario o informe o para la base de datos, Access ejecuta esta macro de menú siempre que se abre el formulario, informe o base de datos. Si realiza cambios en la macro de menú o en el grupo de macros que define sus comandos mientras el formulario, informe o base de datos está abierto, debe cerrar el formulario, informe o base de datos y volver a abrirlo para ver los cambios.

  • Para crear un submenú, siga el paso 1 para crear un grupo de macros independiente que contenga solo los comandos de submenú. A continuación, siga el paso 1 de nuevo para definir los comandos del menú de nivel superior. Agregue el submenú como elemento en el grupo de macros de nivel superior mediante la acción de macro Agregarmenú. En la ilustración siguiente se muestra el grupo de macros de un menú que contiene un submenú y, a continuación, se muestra el menú contextual resultante. La tercera línea del grupo de macros crea el submenú Exportar a... (mcrSubMenu).

    Un menú contextual con un submenú

    Puede crear varios niveles de submenús mediante acciones de AddMenu en los grupos de macros para cada nivel de menú. Asegúrese de proporcionar un valor para el argumento Nombre del menú para cada acción AgregarMenú, de lo contrario, el submenú aparecerá como una línea en blanco en el menú de nivel superior.

  • Las condiciones de macro solo se admiten en la macro del menú de nivel superior. En otras palabras, puede usar una condición en una macro de menú para determinar si se mostrará un menú o un menú contextual determinados, pero solo para los menús del nivel superior. No puede usar condiciones para mostrar u ocultar comandos o submenús en los menús. También puede usar una condición para ocultar o mostrar un menú contextual personalizado o un menú contextual global.

  • Opcionalmente, la macro de menú que cree en el paso 2 puede formar parte de un grupo de macros. Por ejemplo, si tiene varios menús contextuales para diferentes objetos o controles, puede crear un único objeto de macro que contenga todas las macros de menú necesarias. Asegúrese de mostrar la columna Nombre de la macro y escriba un nombre único para cada macro. En el paso 3, use la siguiente notación para hacer referencia a la macro: macrogroupname.macroname. Por ejemplo, mcrAddShortcutMenus.AddMenu2.

Volver al principio

¿Necesita más ayuda?

Ampliar sus conocimientos de Office
Explorar los cursos
Obtener nuevas características primero
Únase a los participantes de Office Insider

¿Le ha sido útil esta información?

¡Gracias por sus comentarios!

Gracias por sus comentarios. Quizá le interese ponerse en contacto con uno de nuestros agentes de soporte de Office.

×