Aplicación Custom UI Editor - XML y VBA

Cuando pensé en crear mi primera aplicación sobre Excel, lo primero que se me vino a la cabeza, fue: como realizaría el diseño para la interfaz de usuario de mi cliente.

En ese instante se me ocurrieron varias ideas, ideas como: colocar en una hoja del libro de Excel todo el conjunto de controles necesarios para que el usuario final desplegara lo que había programado; por otro lado, también imaginé diseñar un Formulario general que contuviera todo ese conjunto de controles que se lanzaran dentro del UserForm cada vez que mi cliente abriera el libro.


Sin embargo, allí estaba yo, pensando y pensando sobre la manera más profesional de hacerlo. En ese punto observé la interfaz de usuario que tiene el mismo Excel y deduje: ¡porque no implementarla como lo hace la misma aplicación!, es decir, con una pestaña que despliegue todos los controles necesarios que el usuario requiere para operar con la aplicación.

Pues bien, allí empezó mi tarea investigativa sobre como colocar controles en la cinta de opciones del Excel. Muy poco tiempo pasó y deduje que la mejor manera de hacerlo era con XML (eXtensible Markup Language).

Este lenguaje que a primera vista me pareció sorprendente, llamó mi atención por su sencillez y robustez a la hora de implementarlo sobre esquemas que ya estaban creados dentro de Excel. No obstante, me faltaba algo. Me faltaba un editor que me permitiera de manera sencilla insertar esos esquemas XML dentro de la estructura interna de cualquier libro de Excel.

Algo que usted debe saber

Un archivo de Excel cualquiera está compuesto por diversos y diferentes esquemas nativos que hacen que la aplicación general lo interprete de manera correcta al momento de cargar su cinta de opciones, menús contextuales y hasta la misma barra de herramientas de acceso rápido.

Para comprobarlo, haz que tu sistema operativo muestre las extensiones de todos los archivos en tu PC. Luego cambia la extensión de un archivo de Excel, por ejemplo: de (.xlsm a .zip), por último, descomprime el archivo de Excel con la extensión modificada y observa todos los elementos que lleva inmerso un libro de Excel. Básicamente muchos de esos elementos son esquemas XML que están dentro del libro para que este funcione correctamente.
---

Un editor que tras probarlo me pareció bastante confiable, es el poco conocido Custom UI Editor para Microsoft Office. Este pequeño y sencillo programa que se distribuye de manera gratuita en: www.openxmldeveloper.org, es una herramienta imprescindible que nos permite insertar todos los esquemas XML dentro de la estructura interna de cualquier libro de Excel y otras aplicaciones de la Suite de Office de un modo muy limpio y seguro sin necesidad de realizar maniobras dispendiosas sobre los archivos.

La instalación del programa es como de costumbre muy similar a la de cualquier otro programa que ya hemos instalado en un sistema operativo Windows. Sólo debes ejecutar su archivo de instalación, aceptar algunos términos y condiciones, y por último dar clic en unos cuantos botones.

Que debo tener en cuenta al instalar el Custom UI Editor

Casi nada, su instalación es muy fácil y sencilla, sin embargo, debes asegurarte primero que tu sistema operativo tenga una versión igual o superior del marco de trabajo de .Net Framework 3.5 que encuentras en www.microsoft.com; ya que este programa se desarrolló con el IDE de .Net.

---

El Custom UI Editor como ya dije, es un programa muy potente que nos permite insertar los diversos esquemas XML que nos permite Excel desde su entorno gráfico. Por ejemplo, en la cinta de opciones o (Ribbon), en la barra de herramientas de acceso rápido o (Quick Access Toolbar), en menús contextuales, en la vista previa, etc.

A continuación, un ejemplo de un botón en una pestaña en la Ribbon

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
  <ribbon startFromScratch="false">
    <tabs>
      <tab id="customTab" label="Custom Tab">
        <group id="customGroup" label="Custom Group">
          <button id="customButton"
          label="Custom Button"
          imageMso="HappyFace"
          size="large"
          onAction="Callback" />
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>


---

Si en algún momento te interesa desarrollar una aplicación profesional con Excel, te recomiendo primero pensar en cómo realizarás el diseño de la interfaz antes de comenzar a construir la aplicación.

Desde luego si me preguntas a mi como hacerla, lo más probable es que te responda: lo más parecida a Excel; es decir: usa XML para crear esquemas con controles, y el Custom UI Editor para incorporarlos a cualquier Libro de Excel.

10 comentarios:

  1. Contenido muy interesante con un EXCELente nivel de explicación.
    Pulgar arriba :)

    ResponderBorrar
  2. Hola Andrés Excelente lo que quieres enseñarnos, muy pero muy buen tutorial y que hago para saber más sobre el tema?

    ResponderBorrar
  3. hola como hago para colocar mas solo me muestra 1 al colocar otro menú no sale solo quedan los que trae excel 2016 de ante mano te agradesco

    ResponderBorrar
  4. Andres, muchas gracias por la informacion. Mucho exito.

    ResponderBorrar
  5. Excelente... buen dato, quiero hacer una aplicación en Excel pero en este caso quisiera colocar los botones en la parte inferior debajo de barra de hojas... Como sería?

    ResponderBorrar
  6. excelente información muy valiosa

    ResponderBorrar
  7. Excelente aportación. Y para Office 2019, sirve el Custom UI Editor?

    ResponderBorrar
  8. Greacias por su aportación. El problema es que actualmente esa página ya no contiene el editor. ¿Podría informarme de dónde encontrarlo? Gracias anticipadas.

    ResponderBorrar
  9. Me parece buen material. Lo único que me quedó una duda ¿Cómo puedo hacer que mi pestaña personalizada se abra al momento de abrir el archivo? Gracias de antemano.

    ResponderBorrar
  10. Excelente material, apenas inicio en éstos temas, tengo una preguna puntal como exporto o donde puedo conseguir los iconos pero en formato png, para usarlos como simples imagenes en un excel y de manera sencilla asignarles macros.
    gracias, espero me puedas ayudar

    ResponderBorrar