You are on page 1of 11

Tutorial: Crear una pestaña

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

Crear un proyecto de libro de Excel


Los pasos para utilizar el diseñador de la cinta de opciones son casi idénticos para todas las aplicaciones de
Office.En este ejemplo se utiliza un libro de Excel.
Para crear un proyecto de libro de Excel
 Cree un proyecto de libro de Excel con el nombre MyExcelRibbon.Para obtener más información,
vea Cómo: Crear proyectos de Office en Visual Studio.
Visual Studio abre el nuevo libro de Excel en el diseñador y agrega el
proyectoMyExcelRibbon al Explorador de soluciones.
Crear paneles de acciones
Agregue dos paneles de acciones personalizados al proyecto.Posteriormente agregará botones a la pestaña
personalizada que muestren y oculten estos paneles de acciones.
Para crear paneles de acciones
1. En el menú Proyecto, elija Agregar nuevo elemento.
2. En el cuadro de diálogo Agregar nuevo elemento, seleccione ActionsPaneControly, a continuación,
elija Agregar.
En el diseñador se abre el archivo ActionsPaneControl1.cs oActionsPaneControl1.vb.
3. Desde la ficha Controles comunes del Cuadro de herramientas, agregue una etiqueta a la superficie del
diseñador.
4. En la ventana Propiedades, establezca la propiedad Texto de label1 en Actions Pane 1.
5. Repita los pasos del 1 al 5 para crear un segundo panel de acciones y una etiqueta.Establezca la
propiedad Texto de la segunda etiqueta en Actions Pane 2.

Crear paneles de acciones


Agregue dos paneles de acciones personalizados al proyecto.Posteriormente agregará botones a la pestaña
personalizada que muestren y oculten estos paneles de acciones.
Para crear paneles de acciones
1. En el menú Proyecto, elija Agregar nuevo elemento.
2. En el cuadro de diálogo Agregar nuevo elemento, seleccione ActionsPaneControly, a continuación,
elija Agregar.
En el diseñador se abre el archivo ActionsPaneControl1.cs oActionsPaneControl1.vb.
3. Desde la ficha Controles comunes del Cuadro de herramientas, agregue una etiqueta a la superficie del
diseñador.
4. En la ventana Propiedades, establezca la propiedad Texto de label1 en Actions Pane 1.
5. Repita los pasos del 1 al 5 para crear un segundo panel de acciones y una etiqueta.Establezca la
propiedad Texto de la segunda etiqueta en Actions Pane 2.
Ocultar y mostrar paneles de acciones con botones de la
pestaña personalizada
El último paso consiste en agregar código que responda al usuario.Agregue controladores de eventos para los
eventos Click de los dos botones y el evento Click del botón de alternancia.Agregue código a estos controladores
de eventos para ocultar o mostrar los paneles de acciones.
Para ocultar y mostrar paneles de acciones con botones de la ficha personalizada

1. En el Explorador de soluciones, abra el menú contextual de MyRibbon.cs o MyRibbon.vb y, a


continuación, elija Ver código.
2. Agregue el siguiente código al comienzo de la clase MyRibbon.Este código crea dos objetos de panel de
acciones.

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

Private Sub Button2_Click(ByVal sender As System.Object, _


ByVal e As Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs) _
Handles Button2.Click

Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = True
actionsPane1.Hide()
actionsPane2.Show()
ToggleButton1.Checked = False

End Sub

Private Sub ToggleButton1_Click(ByVal sender As System.Object, _


ByVal e As Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs) _
Handles ToggleButton1.Click

If ToggleButton1.Checked Then
Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = False
Else
Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = True
End If

End Sub

Probar la ficha personalizada


Al ejecutar el proyecto, se inicia Excel y aparece la pestaña My Custom Tab en la cinta.Elija los botones de My
Custom Tab para mostrar u ocultar los paneles de acciones.
Para probar la ficha personalizada
1. Presione F5 para ejecutar el proyecto.
2. Elija la pestaña My Custom Tab.
3. En el grupo Custom Actions Pane Manager, elija Show Actions Pane 1.
El panel de acciones aparece y muestra la etiqueta Actions Pane 1.
4. Elija Show Actions Pane 2.
El panel de acciones aparece y muestra la etiqueta Actions Pane 2.
5. Elija Hide Actions Pane.
Los paneles de acciones ya no están visibles.

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.

Crear menús en Excel 2003 y Ribbon


en Excel 2007 y 2010
BY SERGIO ALEJANDRO CAMPOS · 2 JANUARY, 2011
Una de las funciones mas socorridas entre los programadores de macros en Excel, es la
creación de menúes que alojen sus macros creadas para propósitos específicos, ya sea para
archivos de uso personal o para complementos (add-ins) que sean compartidos, vendidos o
distribuidos.

Menús en EXCEL 2003


Excel 2003, nos permite la creación de menús que estén ligados a macros escritas por
nosotros mismos. Un código para la creación de un menú en esta versión es:

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

El menú creado se vería de la siguiente manera:

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.

Imagen de ejemplo en Excel 2010

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.

Nota: en la versión 2007 no es posible personalizar pestañas desde el menú Personalizar


cinta de opciones…, pero en la versión 2010 ya es posible. El inconveniente que la cinta de
opciones quedaría para cualquier archivo y tendría que llamar a las macros residentes en
diferentes archivos, a menos que se guarden en el archivo PERSONAL, pero eso ya es otra
historia.

Crear Ribbon en Excel 2007 y 2010


Anteriormente vimos que si un archivo, en su evento _Open manda crear un menú, este se
agregará en las barras de menú de Excel 2003 y anteriores, pero en Excel 2007 y 2010 se
crearán dentro de la pestaña de Complementos. Como también hemos visto anteriormente,
los archivos de Office Open XML realmente son contenedores .zip que albergan las
características de los archivos. Los menús de Excel se crean mediante código, pero los
Ribbon vienen almacenados en una achivo .xml que contiene el código necesario.

A continuación enlisto los pasos para crear personalizar nuestro propio Ribbon.

 Es recomendable descargar la aplicación Custom UI Editor for Microsoft Office.


 El archivo creado en Excel debe tener la extensión .xlsm (libro de Excel habilitado para
macros).
 Abrimos la aplicación y desde ahí abrimos nuestro archivo de Excel.

 Insertamos un archivo pesonalizado para Excel 2007 o Excel 2010 y lo renombramos


como customIU.xml.
 Al tener nuestro achivo, insertamos un ejemplo de XML, ya sea una pestaba (tab), un
espacio dentro menú Archivo (backstage), etc. En este ejemplo vamos a insertar una
pestaña personalizada.

 Se guarda el archivo y se abre directamente en Excel para ver el ejemplo.


Código de ejemplo:
pre{font-family:courier new; font-size:10.0pt;}

<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>

Imagen de cómo se verá nuestro Ribbon:

 Las macros se mandan llamar desde onAction en el archivo customUI.xml, y en nuestro


código de vba las macros deben tener el siguiente parámetro:

Sub Callback(control As IRibbonControl)


MsgBox "Aquí debería ocurrir una acción", vbInformation
End Sub

You might also like