personalizada usando el
diseñador de la cinta de opciones
Visual Studio 2015
El diseñador de la cinta de opciones permite crear una pestaña personalizada y, a continuación, agregar y colocar
controles en ella.
Aplicación: la información de este tema se aplica a los proyectos de nivel de documento de Excel. Para obtener
más información, consulte Características disponibles por aplicación y tipo de proyecto de Office.
En este tutorial se muestran las tareas siguientes:
Crear paneles de acciones.
Crear una ficha personalizada.
Ocultar y mostrar paneles de acciones con botones de la pestaña personalizada.
Nota
Es posible que tu equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la
interfaz de usuario de Visual Studio en las siguientes instrucciones. La edición de Visual Studio que se
tenga y la configuración que se utilice determinan estos elementos. Para obtener más información,
consulte Customizing Development Settings in Visual Studio.
Requisitos previos
Necesita los componentes siguientes para completar este tutorial:
Una edición de Visual Studio que incluye las herramientas para desarrolladores de Microsoft Office. Para
obtener más información, consulte Configurar un equipo para desarrollar soluciones de Office.
Microsoft Excel
VB
Dim actionsPane1 As New ActionsPaneControl1()
Dim actionsPane2 As New ActionsPaneControl2()
3. Reemplace el método MyRibbon_Load por el código siguiente.Este código agrega los objetos de panel
de acciones a la colección ActionsPane.Controls y oculta los objetos de la vista.El código de Visual C#
también asocia delegados a varios eventos de control de la cinta de opciones.
VB
Private Sub MyRibbon_Load(ByVal sender As System.Object, ByVal e As
Microsoft.Office.Tools.Ribbon.RibbonUIEventArgs) Handles MyBase.Load
Globals.ThisWorkbook.ActionsPane.Controls.Add(actionsPane1)
Globals.ThisWorkbook.ActionsPane.Controls.Add(actionsPane2)
actionsPane1.Hide()
actionsPane2.Hide()
Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = False
End Sub
4. Agregue los tres métodos de control de eventos siguientes a la clase MyRibbon.Estos métodos
controlan los eventos Click de los dos botones y el evento Click del botón de alternancia.Los
controladores de eventos de button1 y button2 muestran paneles de acciones alternativos.El controlador
de eventos de toggleButton1 muestra y oculta el panel de acciones activo.
C#
VB
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs) _
Handles Button1.Click
Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = True
actionsPane2.Hide()
actionsPane1.Show()
ToggleButton1.Checked = False
End Sub
Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = True
actionsPane1.Hide()
actionsPane2.Show()
ToggleButton1.Checked = False
End Sub
If ToggleButton1.Checked Then
Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = False
Else
Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = True
End If
End Sub
Pasos siguientes
Puede aprender más acerca de la personalización de la interfaz de usuario de Office en estos temas:
Agregar una interfaz de usuario basada en contexto a cualquier personalización de nivel de
documento.Para obtener más información, vea Información general sobre paneles de acciones.
Extender un formulario estándar o personalizado de Microsoft Office Outlook.Para obtener más
información, vea Tutorial: Diseñar un área de formulario de Outlook.
Sub CrearMenu()
Dim HelpMenu As CommandBarControl
Dim MenuNuevo As CommandBarPopup
Dim MenuItem As CommandBarControl
Dim SubmenuItem As CommandBarButton
'Borra el Menu 'EXCELeINFO' llamando a otra macro
Call BorrarMenu
'Busca por el menú Ayuda, esto es simplemente un convenio no firmado entre programadores
'para los cuales cualquier menu creado y añadido debe ir antes que el menu llamado Ayuda y/o Help, el cual tiene como ID
=30010
Set HelpMenu = Application.CommandBars("Worksheet Menu Bar").FindControl(ID:=30010)
If HelpMenu Is Nothing Then
' Añade el menu 'EXCELeINFO' al final
Set MenuNuevo = Application.CommandBars("Worksheet Menu
Bar").Controls.Add(Type:=msoControlPopup, Temporary:=True)
Else
' Si Ayuda existe, entonces antes que el menu '?' es decir ID=30010
Set MenuNuevo = Application.CommandBars("Worksheet Menu
Bar").Controls.Add(Type:=msoControlPopup, Before:=HelpMenu.Index, Temporary:=True)
End If
' hemos colocado un & antes que la 'C' para que la 'C' esté subrayada y podamos acceder al menú no solamente con el ratón
sino desde el teclado con la combinacion de teclas 'ALT + C'
MenuNuevo.Caption = "EX&CELeINFO"
' Y vamos añadiéndole diferentes botones y/o controles tal que...
'------------------------------------
'MENÚ FORMATO DE REPORTES
Set MenuItem = MenuNuevo.Controls.Add(Type:=msoControlPopup)
With MenuItem
.Caption = "&Formato de reportes"
End With
'
Set SubmenuItem = MenuItem.Controls.Add(Type:=msoControlButton)
With SubmenuItem
.Caption = "&Reporte1"
.FaceId = 532
.OnAction = "Macro1"
End With
'3.B)
Set SubmenuItem = MenuItem.Controls.Add(Type:=msoControlButton)
With SubmenuItem
.Caption = "&Reporte2"
.FaceId = 532
.OnAction = "Macro2"
End With
'
Set SubmenuItem = MenuItem.Controls.Add(Type:=msoControlButton)
With SubmenuItem
.Caption = "&Formatear reporte"
.FaceId = 300
.OnAction = "Macro3"
End With
'------------------------------------
'BOTÓN ACERCA DE
Set MenuItem = MenuNuevo.Controls.Add(Type:=msoControlButton)
With MenuItem
.Caption = "&Macro1"
.FaceId = 682
.OnAction = "Macro4"
.BeginGroup = True
End With
'
Set MenuItem = MenuNuevo.Controls.Add(Type:=msoControlButton)
With MenuItem
.Caption = "&Acerca de ..."
.FaceId = 682
.OnAction = "Macro5"
.BeginGroup = True
End With
End Sub
Notas: El menú creado en el ejemplo es aplicable sólo para el archivo en cuestión, por lo que
se crea una macro con el nombre de BorrarMenu en el evento _BeforeClose.
:: Descargar el ejemplo
Menús y Ribbon en EXCEL 2007,2010
A partir de Excel 2007, Microsoft introdujo una nueva nomenclatura para los formatos de
Office, añadiéndoles una X al final de las extensiones conocidas, tal es el caso de los
formatos *.xls, ahora son *.xlsx; y el formato *.xlsm para los archivos de Excel que
contienen macros, distinguiendo así los formatos potencialmente peligrosos.
En resumidas cuentas, los formatos de Office con terminaciones ‘x’ son en base a una
petición de organizaciones internacionales para Microsoft asignara formatos abiertos que les
permitieran a otras aplicaciones interoperar con ellos; el estándar de formatos se denomina
Office Open XML, también llamado OOXML y OpenXML. Un archivo Office Open XML
contiene principalmente datos basados en el lenguaje de marcado XML, comprimidos en un
contenedor .zip específico. Más información en Wikipedia: Office Open XML.
Retomando el tema de los menús, si abrimos el archivo de ejemplo anterior en 2007 o 2010,
el resultado mostrado no sería el óptimo, puesto que, estas versiones al no tener menús sino
pestañas, el encontrar el menú sería una tarea poco viable y estéticamente mala.
Por lo tanto, lo más conveniente será crear una nueva pestaña personalizada a nuestro gusto
y con los botones que nosotros decidamos, lo cual se vuelve mucho más estético y más
funcional.
A continuación enlisto los pasos para crear personalizar nuestro propio 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>