martes, 17 de mayo de 2016

VBA: Cómo crear nuestro propio Complemento en Excel.

Hace algún tiempo publiqué cómo conseguir personalizar nuestra Cinta de Opciones sin macros (ver), pero, sin duda este es un tema muy recurrente en las búsquedas por Internet, que aunque a priori parezca algo avanzado, veremos en el post de hoy, que con pocos conocimientos es posible conseguirlo...
Cómo generar nuestro propio complemento en Excel.

En realidad en cuatro pasos:
1-crear macros en nuestro libro de Excel
2-guardar el libro como .xlam (Complemento de Excel)
3-abrir y generar el código dentro del 'Custom UI Editor'
4-cargar nuestro complemento.


Lo primero que necesitaremos será una macro.. valdrá el código de cualquiera de las mostradas en este blog (o la que necesites o tengas).
Por simplificar, y no despistar de nuestro objetivo: Crear un Complemento en Excel, utilizaré un par de macros para abrir una web.
Incluimos nuestras macros en un módulo estándar del editor de VB (Alt+F11):

Sub AbrirWeb1(control As IRibbonControl)
'Abrir URL con Internet Explorer
Dim ie As Object
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.Navigate "http://www.excelforo.com/"
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub AbrirWeb2(control As IRibbonControl)
'Abrir URL con nuestro Navegador por Defecto....
ActiveWorkbook.FollowHyperlink _
    Address:="http://www.excelforo.com/", NewWindow:=True
End Sub



MUY importante el parámetro de los procedimientos 'control As IRibbonControl' que servirán para emplearlos como Botones/Controles en la Cinta de Opciones o Ribbon

En el siguiente paso guardaremos nuestro Libro de trabajo como Complemento de Excel (.xlam).
Al presionar Guardar como veremos que la ruta donde el complemento se va a guardar es:
C:\Users\[Nombre Usuario]\AppData\Roaming\Microsoft\Complementos

VBA: Cómo crear nuestro propio Complemento en Excel.



Si deseamos tener oculto el código es recomendable proteger el Proyecto VBA con contraseña...

Nos descargamos e instalamos el Custom UI Editor, puedes hacerlo desde aquí.
En esa web encontrarás un archivo llamado OfficeCustomUIEditorSetup.zip.
En esencia es una aplicación, tipo editor de 'texto', específico para trabajar con lenguaje XML.


Una vez finalizada la instalación, accedemos al programa y lo abrimos...
Se abrirá una sencilla ventana de programa, desde donde en primer lugar presionaremos la opción de abrir, buscando la ruta de nuestro complemento creado (recuerda, en la ruta: C:\Users\[Nombre Usuario]\AppData\Roaming\Microsoft\Complementos):

VBA: Cómo crear nuestro propio Complemento en Excel.



Con nuestro complemento cargado, y aún en la Ventana del 'Custom UI Editor', seleccionaremos el menú Insertar > Office 2010 Custom Part
lo cual generará un fichero CustomUI14.xml únicamente válido para versiones de Excel 2010 y superiores.
O también podemos elegir el menú Insertar > Office 2007 Custom Part
que generará un fichero CustomUI.xml válido para versiones de Excel 2007 y superiores...!!!
Todo dependerá de tu caso.
Yo elegiré la última, es decir, Insertar > Office 2007 Custom Part


En la ventana derecha del editor incluiremos el siguiente código XML (basado en etiquetas):


<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon>
<tabs>
<tab idMso="TabHome" >
<group id="customGroup1" label="Abriendo URL" insertAfterMso="GroupEditingExcel">
<button id="customButton1" label="Abre IE" size="large" supertip="Abre el navegador de Internet Explorer" onAction="AbrirWeb1" imageMso="SlideShowFromCurrent" />
<button id="customButton2" label="Abre Navegador" size="large" supertip="Abre el navegador por defecto" onAction="AbrirWeb2" imageMso="SourceControlShowDifferences" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>



Antes de guardar es importante presionar el botón de Validate, y confirmar que el código es correcto.
Guardamos nuestros cambios y cerramos el 'Custom UI Editor'.


Abrimos un nuevo Libro de trabajo.
Accedemos a la Ficha Desarrollador > grupo de Complementos > botón Complementos.
En la ventana que se abra buscaremos nuestro complemento (recuerda cómo le llamaste: 'MiComplemento'):

VBA: Cómo crear nuestro propio Complemento en Excel.



Tras Aceptar podremos buscar nuestros botones en la Ficha de Inicio, donde habíamos indicado que queríamos incluir nuestras macros:
<tab idMso="TabHome" >

VBA: Cómo crear nuestro propio Complemento en Excel.



Por supuesto las macros asociadas están 100% operativas... y bastará presionar dichos botones para ejecutarlas.

2 comentarios:

  1. Muy interesante Ismael.

    Debí cambiar la primera línea y funcionó el ejemplo



    Para cambiar los íconos ¿dónde están almacenados?

    Muchas gracias

    ResponderEliminar
    Respuestas
    1. Hola,
      la lista de iconos 'no están almacenados' en ningún sitio en particular.. nos referimos a ellos empleando la propiedad 'imageMso'
      En un futuro post mostraré la lista ;-)
      Slds

      Eliminar