Insertar botón personalizado en el Ribbon de Excel al abrir un archivo o add-in

En nuestro Excel podemos crear nuestros propios Ribbons personalizados sin necesidad de macros, pero qué pasa cuando deseamos que un botón que lance una macro nuestra sólo esté disponible cuando abro un archivo de Excel o un add-in.

En otro artículo habíamos platicado sobre cómo crear Ribbons en Excel 2007 y 2010. Para Excel 2013 aplica de la misma manera, sólo que en este ejemplo veremos cómo mostrar un botón dentro de la pestaña Insertar y que lance una macro escrita por nosotros que permita insertar un hipervínculo en una celda.

La macro

La macro que ejecutará nuestro botón nos solicita insertar un hipervínculo en una celda hacia un archivo de nuestra PC, pero a diferencia de la opción Hipervínculo que viene al dar click derecho, la macro inserta la función HIPERVINCULO y nos permite elegir un nombre descriptivo.

Insertar hipervínculo en Excel

Figura 1. Insertar función HIPERVINCULO.

Modificar código XML para mostrar el botón en el Ribbon

Hasta el momento la única manera de poder crear pestañas y botones personalizados en el Ribbon es mediante la modificación de archivos XML dentro de los propios archivos de Excel.

La aplicación que necesitamos es Custom UI Editor For Microsoft Office la cual la podemos descargar de aquí o desde mi OneDrive en caso de que el link esté roto.

Una vez abierta la aplicación y con el archivo de Excel cerrado nos vamos al menú File y elegimos Open. En la parte izquierda se mostrará el nombre de nuestro archivo. En el menú Insert se mostrarán dos opciones llamadas Office 2010 Custom UI Part y Office 2017 Custom UI Part. Elegimos ambas opciones.

Ahora debajo del nombre de nuestro archivo de Excel se mostrarán dos opciones donde se hace referencia a dos archivos .xml. El que se llama customUI14.xml es para que el Ribbon se muestre en Excel 2010 y posteriores y el customUI.xml es para Excel 2007.

Custom UI Editor For Microsoft Office

Figura 1. Custom UI Editor For Microsoft Office nos permite modifcar código XML para manipular el Ribbon.

El código XML que a continuación les comparto deberá pegarse en ambos archivos .xml.

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

      <tab idMso="TabInsert" >
        <group id="Group1" label="Links" insertAfterMso="GroupInsertLinks">

          <button id="customButton1" label="Insertar Link"  size="large" 
		onAction="InsertarLink" imageMso="L" supertip="Insertar la fórmula de Hypervínculo" />

        </group>
      </tab>

    </tabs>
  </ribbon>
</customUI>

Cuando abrimos el archivo notaremos que nuestro botón queda en la pestaña Insertar con la leyenda Insertar Link.

Botón personalizado en Ribbon de Excel

Figura 2. Botón de Insertar Link en la pestaña Insertar.

Código de la macro

En el código XML dentro de la etiqueta onAction hacemos referencia la macro llamada InsertarLink misma que está en el archivo de Excel.

Nótese que los parámetros de la macro son control As IRibbonControl, los cuales deben incluirse para que el XML lea la macro y la pueda ejecutar.

Option Explicit
'
Private Sub InsertarLink(control As IRibbonControl)
Dim Separador As String
Dim RutaCompleta As String
Dim Descripcion As String
'
Separador = Application.International(xlListSeparator)
'
With Application.FileDialog(msoFileDialogOpen)
    .InitialFileName = Application.DefaultFilePath & " \ "
    .Title = "EXCELeINFO - Seleccionar archivo para hipervínculo"
    .Filters.Clear
    .Filters.Add "All files", "*.*"
    .InitialView = msoFileDialogViewDetails
    .Show
    If .SelectedItems.Count = 0 Then
    Else
        RutaCompleta = .SelectedItems(1)
        Descripcion = InputBox("Nombre descriptivo del hipervínculo.", "Insertar hipervínculo", "")
        If Descripcion = "" Then Descripcion = RutaCompleta
        ActiveCell.Formula = "=HYPERLINK(""" & RutaCompleta & " """ & Separador & """" & Descripcion & """)"
    End If
End With
End Sub

Anexos

:: Descar los ejemplos en .xlsx y .xlsx

:: Descarga Custom UI Editor For Microsoft Office

Referencias

Si deseas que el botón esté siempre disponible en Excel lee este artículo para crear add-ins en Excel.

You may also like...