¿Qué es Ribbon?

Ribbon en Microsoft Office ha cambiado radicalmente su aspecto desde que se introdujo por primera vez en Microsoft Office 2007, y ahora este tipo de estilo de menús llamado Ribbon, que es una alternativa a las barras estándar y al modelo de menú jerárquico en las aplicaciones, se ha extendido mucho en otras aplicaciones por su fácil manejo y también facilidad de uso de las aplicaciones al agrupar los comandos de menú en páginas y categorías y al ser más intuitivo por disponer de grandes iconos que representan cada una de las funcionalidades.

Cuando se compara con las barras estándar y el modelo de menú, el control de la cinta tiene las siguientes ventajas.

  • Interfaz de usuario simplificada.
  • Acceso fácil y rápido a los comandos.

Esta vez, vamos a crear un menú personalizado para nuestro Excel, de forma que recopilemos las funciones que más usamos en una única pestaña del Ribbon con el fin de disminuir el número de veces que tenemos que cambiar de pestaña.

Lo primero que debemos hacer es Descargar el Software que utilizaremos para Crear y Modificar nuestra cinta de opciones llamada “Ribbon”:

Descargar   Custom UI Editor para Microsoft Office

A continuación, te mencionare los distintos elementos y su ordenamiento para construir un XML que defina o modifique un menú Ribbon de Office.

El XML sirve para personalizar la interfaz de usuario, y para ello existen dos formas de hacerlo:

  • Modificar la aplicación ocultando o desactivando fichas y controles existentes en el menú Ribbon por defecto.
  • Crear controles agregando fichas a la cinta de opciones, elementos de menú y botones a la barra de herramientas de acceso rápido.

Otra referencia importante a tener en cuenta a la hora de modificar el menú de Access o Excel es la lista de elementos existentes. Si se quiere ocultar (visible=”false”) o deshabilitar (enabled=”false”) un elemento predeterminado del menú, se deberá saber de antemano su identificador de forma de poder aplicarle la propiedad.

Se pueden utilizar las imágenes de Office en la definición de nuevos botones, por ejemplo.

El atributo imageMSO de un botón, por ejemplo, hace referencia a una imagen de Office.
El valor de esta propiedad debe ser un nombre válido de imagen de Office.

CustomUI

Todas las definiciones de menú Ribbon comienzan por la etiqueta customUI, que es la etiqueta principal o raíz, que contendrá a todas las demás etiquetas.

Lo que se define a continuación es el esquema o espacio de nombres utilizado de Office.

Así, para Office 2007 y posterior se ha de invocar al espacio de nombres:
<customUI xmlns = “http://schemas.microsoft.com/office/2006/01/customui”>

Y para Office 2010 y posterior es:
<customUI xmlns = “http://schemas.microsoft.com/office/2009/07/customui”>

También tiene una propiedad o atributo onLoad que se puede incluir para indica que se llamará a un método o función durante la carga del menú. Esto es útil a la hora de tener que definir distintos menús según alguna condición, como, por ejemplo, según los permisos del usuario que ha abierto la aplicación.

En el ejemplo siguiente se indica que se llamará a una macro denominada CargarMenu.

<customUI xmlns = “http://schemas.microsoft.com/office/2006/01/customui” onLoad=”CargarMenu”>

NOTA: Los ejemplos de esta publicación han sido probados en Excel 2013 y 2016.

Tabs

Este elemento especifica una lista o grupo de fichas o pestañas, es decir que contendrá uno o más elementos tab. Se escribe dentro de la etiqueta ribbon.

Tab

Este elemento especifica una ficha en la cinta de opciones. Se escribe dentro de una etiqueta de nivel superior tabs que agrupa a todas las fichas o pestañas. Y tabs se escribe dentro de la etiqueta ribbon.

id
Como todo identificador ha de ser único en todo el XML.

label
Etiqueta que aparecerá en la ficha.

idMso
identificador de un control existente, es el id interno de una ficha ya existente de menú Ribbon
útil para cuando lo que se quiere no es añadir una nueva ficha sino modificar una ficha ya existente en el Ribbon.

imageMso
Identifica una imagen existente de Office.

keyTip
Carácter (letra o número) para ser utilizado como KeyTip, que aparece encima del control cuando se presiona la tecla ALT, si no se especifica la aplicación generará automáticamente un carácter para el control.

visible
Booleano que indica si el control es visible (true) o no (false).

En el ejemplo siguiente te explicare como de una forma muy sencilla podemos crear nuestros sus propios menús personalizados desde la cinta de opciones, agregando botones con Imagen y asignarle una macro para mostrar un determinado Formulario o función, se reinicia la cinta de opciones (startFromScratch=”true”), se definen dos nuevas fichas con sus controles.

Las fichas contienen separadores, grupos y botones.

<customUI xmlns=”http://schemas.microsoft.com/office/2006/01/customui”>

    <ribbon startFromScratch=”true”>

 <!– Cinta de Opciones –>

        <tabs>

            <tab id=”Ficha01″ label=”Inventario – MacroExcelVBA” visible=”true”>

                <group id=”grupo01″ label=”Operaciones”>

                    <button id=”boton01″ size=”large” label=”Compras” imageMso=”SlideMasterChartPlaceholderInsert” />

                    <button id=”boton02″ size=”large” label=”Ventas” imageMso=”PivotChartClearMenu” />

                    <separator id=”separador01″ ></separator>

                    <button id=”boton03″ size=”large” label=”Reinicio” imageMso=”MasterViewClose” />

                    <button id=”boton04″ size=”large” label=”Informe” imageMso=”AccessListIssues” />

                    <button id=”boton05″ size=”large” label=”Contactos” imageMso=”TextAlignGallery” onAction=”Macro1″/>

                </group> 

            </tab>

            <tab id=”Ficha02″ label=”Reportes – MacroExcelVBA” visible=”true”>

                <group id=”grupo02″ label=”Ventas”>

                    <button id=”boton06″ size=”large” label=”Rango de Fechas” imageMso=”CacheListData” />

                    <button id=”boton07″ size=”large” label=”Productos” imageMso=”DatabaseMoveToSharePoint” />

                </group> 

                <group id=”grupo03″ label=”Kardex”>

                    <button id=”boton08″ size=”large” label=”Parcial” imageMso=”ViewsLayoutView” />

                    <button id=”boton09″ size=”large” label=”Total” imageMso=”ControlLayoutStacked” />

                </group>

            </tab>

        </tabs>

    </ribbon>

</customUI>

A esta línea le estamos dando la función de que nos muestre un Formulario desde la cinta de opción de Excel:

<button id=”boton05″ size=”large” label=”Contactos” imageMso=”TextAlignGallery” onAction=”Macro1″/>

El resultado será el siguiente:

Backstage

Como te lo menciono en el Titulo de esta publicación “Ocultar Backstage”, no es posible ocultar la ficha Archivo, pero si podemos Mostrar y Ocultar ciertos elementos del Backstage de Excel. Esto resulta útil para evitar que el usuario de la aplicación pueda acceder a ciertos elementos, por ejemplo.

La siguiente etiqueta se puede utilizar en Excel 2013 o superior y adaptarla a tu necesidad.

<customUI xmlns=”http://schemas.microsoft.com/office/2009/07/customui”>

    <ribbon startFromScratch=”false”>

        <!– Menu Backstage –>

    </ribbon>

    <backstage>

<button idMso=”ApplicationOptionsDialog” visible=”false”/>

<button idMso=”FileSave” visible=”false”/>

<button idMso=”FileSaveAs” visible=”false”/>

<button idMso=”FileOpen” visible=”false”/>

<button idMso=”FileClose” visible=”false”/>

<button idMso=”FileExit” visible=”false”/>

<tab idMso=”Publish2Tab” visible=”false”/>

<tab idMso=”HistoryTab” visible=”false”/>

<tab idMso=”TabSave” visible=”false”/>

<tab idMso=”TabRecent” visible=”false”/>

<tab idMso=”TabInfo” visible=”false”/>

<tab idMso=”TabShare” visible=”false”/>

<tab idMso=”TabHelp” visible=”false”/>

<tab idMso=”TabNew” visible=”false”/>

<tab idMso =”TabOfficeStart” visible=”false”/>

<tab idMso=”TabPublish” visible=”false”/>

<tab idMso=”TabHelp” visible=”false”/>

<tab id=”TabPublish” label=”Información” insertBeforeMso=”TabInfo”>

<firstColumn>

<group id=”TestGrp” label=”MacroExcelVBA – Ag” helperText=”www.macroexcelvba-ag.com”>

<primaryItem>

<button id=”myemputon” label=”VBA” image=”MiLogo” onAction=”Macro1″/>

</primaryItem>

</group>

</firstColumn>

</tab>

</backstage>

</customUI>

El resultado será el siguiente:

Con este pequeño codigo hacemos que un Boton en la cinta de opcion tenga una Accion a cumplir:

onAction=”Macro1″

Para implementar esto solo debemos ir al entorno de Visual Basic y desde alli agregar un nuevo Modulo como lo vemos en el siguiente Ejemplo:

Espero que este Código te ayude como base ya que el código está bastante fácil y práctico, y 
si te ha parecido Interesante y lo quieres obtener, tendrás la oportunidad de descárgalo Gratis los ejemplos base solo pulsa el Botón de Descargar Archivo.

*** Comparte esta Publicación en tus Redes Sociales ya que estarás ayudando a MacroExcelVBA-Ag a compartir mas Material de Apoyo.

Descarga los Ejemplos.

Categorías: Código VBA

2 commentarios

Erwin Legrant · julio 16, 2019 a las 3:37 pm

Hola hacia mucho tiempo necesitaba esta informacion 🙁 al fin voy a poder terminar el trabajo del semestre muchas gracias T.T

    admin · julio 16, 2019 a las 9:28 pm

    Saludos Erwin, Gracias por tu Comentario….

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

WhatsApp Escríbenos a WhatsApp