Hoja inteligente 9.1.1
Smartsheet es una plataforma de trabajo dinámica que le permite gestionar proyectos, crear flujos de trabajo y colaborar con su equipo.
Antes de Excel 2007, los programadores de VBA usaban el objeto CommandBar para crear menús personalizados, barras de herramientas personalizadas y menús de acceso directo personalizados (clic derecho). A partir de Excel 2007, el objeto CommandBar se encuentra en una posición bastante extraña. Si escribe código para personalizar un menú o una barra de herramientas, Excel intercepta ese código e ignora muchos de sus comandos.
En lugar de mostrar la mejora de la interfaz bien pensada, Excel 2007 (como las versiones posteriores) simplemente descarga sus menús y barras de herramientas personalizados en una pestaña de cinta de opciones llamada Complementos.
Las personalizaciones de menús y barras de herramientas terminan en Complementos → Comandos de menú o Complementos → Barras de herramientas personalizadas. Pero la personalización de los menús de acceso directo (que también usa el objeto CommandBar) sigue funcionando como siempre, bueno, algo así.
¿Línea de fondo? El objeto CommandBar ya no es muy útil, pero sigue siendo la única forma de personalizar los menús contextuales.
A continuación, encontrará un código de muestra que agrega un nuevo elemento al menú de acceso directo que aparece cuando hace clic con el botón derecho en una celda. Debería poder adaptar estos ejemplos a sus necesidades.
Puede mejorar un poco la utilidad Cambiar caso haciéndola disponible en el menú de acceso directo de Celda.
El procedimiento AddToShortcut agrega un nuevo elemento de menú al menú de acceso directo de Celda. Puede adaptarlo para que apunte a sus propias macros cambiando las propiedades Caption y OnAction del objeto llamado NewControl.
Sub AddToShortCut () Dim Bar como CommandBar Atenuar NewControl como CommandBarButton DeleteFromShortcut Establecer barra = Application.CommandBars ("Celda") Establecer NewControl = Bar.Controls.Add _ (Tipo: = msoControlButton, ID: = 1, _ temporal: = Verdadero) Con NewControl .Caption = "& Cambiar mayúsculas y minúsculas" .OnAction = "ChangeCase" .Style = msoButtonIconAndCaption Terminar con End Sub
Cuando modifica un menú de acceso directo, esa modificación permanece en vigor hasta que reinicia Excel. En otras palabras, los menús contextuales modificados no se restablecen cuando cierra el libro de trabajo que contiene el código VBA. Por lo tanto, si escribe código para modificar un menú de acceso directo, casi siempre escribe código para revertir el efecto de su modificación.
El procedimiento DeleteFromShortcut elimina el nuevo elemento de menú del menú de acceso directo de Celda:
Sub DeleteFromShortcut () En caso de error, reanudar siguiente Application.CommandBars ("Celda"). Controles _ ("& Cambiar mayúsculas y minúsculas"). Eliminar End Sub
Esto muestra cómo se muestra el nuevo elemento de menú después de hacer clic con el botón derecho en una celda.
El menú de acceso directo de Celda que muestra un elemento de menú personalizado: Cambiar mayúsculas y minúsculas.
El primer comando real después de la declaración de un par de variables llama al procedimiento DeleteFromShortcut. Esta declaración garantiza que solo aparezca un elemento de menú Cambiar caso en el menú de celda de acceso directo. Intente comentar esa línea (coloque un apóstrofe al principio de la línea) y ejecute el procedimiento varias veces, ¡pero no se deje llevar!
Haga clic con el botón derecho en una celda y podrá ver varias instancias del elemento de menú Cambiar caso. Deshazte de todas las entradas ejecutando DeleteFromShortcut varias veces (una por cada elemento de menú adicional).
Finalmente, necesita una forma de agregar el elemento del menú de acceso directo cuando se abre el libro de trabajo y de eliminar el elemento del menú cuando se cierra el libro de trabajo. Hacer esto es fácil. Simplemente agregue estos dos procedimientos de eventos al módulo de código ThisWorkbook:
Private Sub Workbook_Open () Llamar a AddToShortCut End Sub Private Sub Workbook_BeforeClose (Cancelar como booleano) Llamar DeleteFromShortcut End Sub
El procedimiento Workbook_Open se ejecuta cuando se abre el libro y el procedimiento Workbook_BeforeClose se ejecuta antes de que se cierre el libro. Justo lo que recetó el doctor.
Si ha utilizado VBA para trabajar con menús contextuales en Excel 2007 o versiones anteriores, debe estar al tanto de un cambio significativo.
En el pasado, si su código modificaba un menú de acceso directo, esa modificación estaba vigente para todos los libros de trabajo. Por ejemplo, si agregó un nuevo elemento al menú del botón derecho de Celda, ese nuevo elemento aparecerá cuando haga clic con el botón derecho en una celda de cualquier libro de trabajo (además de otros libros de trabajo que abra más adelante). En otras palabras, las modificaciones del menú contextual se realizaron a nivel de la aplicación .
Excel 2013 y Excel 2016 usan una única interfaz de documento y eso afecta los menús contextuales. Los cambios que realice en los menús contextuales solo afectarán a la ventana del libro activo. Cuando ejecuta el código que modifica el menú de acceso directo, el menú de acceso directo para ventanas distintas de la ventana activa no cambiará. Esta es una desviación radical de cómo solían funcionar las cosas.
Otro giro: si el usuario abre un libro de trabajo (o crea un nuevo libro de trabajo) cuando la ventana activa muestra el menú de acceso directo modificado, el nuevo libro también muestra el menú de acceso directo modificado. En otras palabras, las nuevas ventanas muestran los mismos menús contextuales que la ventana que estaba activa cuando se abrieron las nuevas ventanas.
En pocas palabras: en el pasado, si abría un libro de trabajo o un complemento que modificaba los menús contextuales, podía estar seguro de que los menús contextuales modificados estarían disponibles en todos los libros de trabajo. Ya no tienes esa seguridad.
La ventana de diseño de macros es diferente en Access 2007 en comparación con versiones posteriores, así que expanda las siguientes secciones para seguirlas si está utilizando Access 2007.
En este paso, crea un grupo de macros, cada macro del cual será un comando separado en su menú contextual.
¿Qué es un macrogrupo?
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 macro. En la siguiente ilustración, Macro3 es un grupo de macros. NotFoundMsg y FoundMsg son macros individuales dentro del grupo y cada macro consta de dos acciones de macro.
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/Ocultar , haga clic en Nombres de macro .
En la pestaña Crear , en el grupo Otro , haga clic en Macro . Si este comando no está disponible, haga clic en la flecha debajo del botón Módulo o Módulo de clase y luego haga clic en Macro .
En la pestaña Diseño , en el grupo Mostrar/Ocultar , haga clic en Nombres de macro para mostrar la columna Nombre de macro .
Para cada comando que desee en su menú contextual personalizado:
En la columna Nombre de la macro , ingrese el texto que desea mostrar en el menú contextual (por ejemplo, "Imprimir informe" o "Guardar").
Nota: Para crear una clave de acceso para que pueda usar el teclado para elegir el comando, escriba un signo (&) 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 que se realice cuando haga clic en el comando en el menú contextual.
Si hay más acciones que desea que se realicen cuando selecciona este comando, agréguelas en las líneas siguientes. Para cada acción posterior, deje la celda Nombre de macro en blanco.
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ú correspondientes.Guarde y asigne un nombre a la macro, por ejemplo, mcrShortcutMenuCommands .
La siguiente ilustración muestra un grupo de macros de ejemplo para un menú personalizado o un menú contextual.
Este paso puede parecer redundante, pero para crear el menú contextual a partir del grupo de macros que creó en el Paso 1, debe crear una segunda macro que contenga la acción de macro AgregarMenu . Esta macro a veces se denomina "macro de menú".
En la pestaña Crear , en el grupo Otro , haga clic en Macro . Si este comando no está disponible, haga clic en la flecha debajo del botón Módulo o Módulo de clase y luego haga clic en Macro .
En la primera línea de la macro, seleccione AgregarMenú en la lista Acción .
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, planea 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 menú contextual en el Paso 3, se ignora el argumento Nombre del menú .
En el cuadro Nombre de la macro del menú , ingrese el nombre de la macro que creó en el Paso 1.
Guarde y asigne un nombre a la macro, por ejemplo, mcrAddShortcutMenu .
La siguiente ilustración muestra una macro de menú de ejemplo que crea el menú que diseñamos en el Paso 1.
Dependiendo de dónde desee que aparezca el menú, utilice uno o más de los siguientes procedimientos.
Agregar el menú a la pestaña Complementos de un formulario o informe
Utilice este procedimiento si desea que el menú aparezca en la pestaña Complementos para un formulario o informe específico, como se muestra en la siguiente ilustración:
En el Panel de navegación, haga clic con el botón derecho en el formulario o informe donde desea que aparezca el menú y luego haga clic en Vista Diseño .
En la pestaña Diseño , en el grupo Mostrar/Ocultar , haga clic en Hoja de propiedades .
Seleccione todo el objeto seleccionando Formulario o Informe de la lista en la parte superior del panel de tareas Hoja de propiedades.
En la pestaña Otro 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, aparecerá la pestaña Complementos en la cinta. 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, consulte el artículo Crear una cinta personalizada en Access .
La cinta es un componente de la interfaz de usuario de Microsoft Office Fluent.
Agregar el menú como menú contextual para un formulario, informe o control
Utilice este procedimiento si desea que aparezca el menú al hacer clic con el botón derecho en un formulario, informe o control específico, como se muestra en la siguiente ilustración:
En el Panel de navegación, haga clic con el botón derecho en el formulario o informe donde desea que aparezca el menú contextual y luego haga clic en Vista Diseño .
En la pestaña Diseño , en el grupo Mostrar/Ocultar , haga clic en Hoja de propiedades .
Seleccione el control u objeto al que desea adjuntar el menú contextual.
Nota: Para seleccionar el objeto completo, seleccione Formulario o Informe de la lista en la parte superior del panel de tareas Hoja de propiedades.
En la pestaña Otro 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 menú contextual global
Este procedimiento reemplaza todos los menús contextuales predeterminados en la base de datos actual. Los menús contextuales personalizados que haya adjuntado a formularios, informes o controles específicos no se ven afectados.
Haga clic en el botón de Microsoft Office y luego haga clic en Opciones de acceso .
En el cuadro de diálogo Opciones de acceso , haga clic en Base de datos actual .
En Opciones de cinta y barra de herramientas , en el cuadro Barra de menú de acceso directo , 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 ciertos comandos de Access para usarlos en estos menús, use la acción RunCommand para colocar los comandos en los grupos de macros de los menús en los que los desea.
Un menú contextual personalizado adjunto a un control reemplaza cualquier otro menú contextual personalizado definido en la base de datos. Un menú contextual personalizado adjunto a un formulario o informe reemplaza a un menú contextual personalizado global.
Cuando especifica una macro de menú para un formulario, informe o base de datos, Access ejecuta esta macro de menú cada vez 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 separado que contenga solo los comandos del submenú. Luego, siga el Paso 1 nuevamente para definir los comandos para el menú de nivel superior. Agregue el submenú como un elemento en el grupo de macros de nivel superior mediante la acción de macro AgregarMenú . La siguiente ilustración muestra el grupo de macros de un menú que contiene un submenú y luego muestra el menú contextual resultante. La tercera línea en el grupo de macros crea el submenú Exportar a... ( mcrSubMenu ).
Puede crear varios niveles de submenús utilizando acciones 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ú en particular o un menú contextual, pero solo para los menús del nivel superior. No puede utilizar condiciones para mostrar u ocultar comandos o submenús en los menús. También puede utilizar 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 ser parte de un grupo de macros. Por ejemplo, si tiene varios menús contextuales para diferentes objetos o controles, puede crear un único objeto macro que contenga todas las macros de menú necesarias. Asegúrese de mostrar la columna Nombre de macro y escriba un nombre único para cada macro. En el paso 3, utilice la siguiente notación para hacer referencia a la macro: macrogroupname.macroname . Por ejemplo, mcrAddShortcutMenus.AddMenu2 .
Smartsheet es una plataforma de trabajo dinámica que le permite gestionar proyectos, crear flujos de trabajo y colaborar con su equipo.
SharePoint es un sistema de colaboración basado en web que utiliza una variedad de aplicaciones de flujo de trabajo, bases de datos de "listas" y otros componentes web, así como funciones de seguridad para dar control a los grupos empresariales que trabajan juntos.
Van Nien Calendar es una aplicación de visualización de calendario en su teléfono, que le ayuda a ver rápidamente la fecha lunisolar en su teléfono, organizando así su importante trabajo.
Microsoft Outlook es una aplicación empresarial y de productividad desarrollada por Microsoft Corporation.
ClickUp es una de las plataformas de productividad mejor calificadas para cualquier empresa. Grandes empresas como Google, Booking.com, San Diego Padres y Uber utilizan ClickUp para aumentar la productividad en el lugar de trabajo.
PDF se ha convertido en un formato de uso común para leer, crear y enviar documentos de texto. A su vez, se ha producido un aumento en el número de programas utilizados para este tipo de documentación. PDF-XChange Viewer se encuentra entre un número creciente de visores de PDF.
Apache OpenOffice ofrece un conjunto completo de aplicaciones de Office que rivalizan con Microsoft 365, especialmente en Excel, PowerPoint y Word. Le permite gestionar sus proyectos de forma más eficaz y admite varios formatos de archivo.
El software iTaxViewer es el software de lectura de archivos XML más popular en la actualidad. Este software es una aplicación de lectura de declaraciones electrónicas de impuestos en formato XML de la Dirección General de Tributación.
Nitro PDF Reader es un práctico editor de PDF que cubre todas las tareas básicas que la mayoría de las personas realizan todos los días con documentos PDF.
Foxit Reader es principalmente un lector de PDF y también le permite crear archivos PDF, firmarlos, editarlos y agregar anotaciones. Funciona en sistemas operativos, existen complementos para varios programas del paquete Microsoft Office.