Tutorial: Crear una pestaña personalizada usando XML de la cinta de opciones

En este tutorial se muestra cómo crear una ficha personalizada de la cinta de opciones mediante el elemento Cinta (XML).

Se aplica a: la información de este tema se aplica a los proyectos de nivel de documento y los proyectos de nivel de aplicación para las siguientes aplicaciones: Excel 2007 y Excel 2010; InfoPath 2010; Outlook 2007 y Outlook 2010; PowerPoint 2007 y PowerPoint 2010; Project 2010; Visio 2010; Word 2007 y Word 2010. Para obtener más información, vea Características disponibles por aplicación y tipo de proyecto de Office.

En este tutorial se muestran las tareas siguientes:

  • Agregar botones a la ficha Complementos. La ficha Complementos es la ficha predeterminada que se define en el archivo XML de la cinta de opciones.

  • Automatizar Microsoft Office Word mediante los botones de la pestaña Complementos.

Nota

Es posible que su 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 tenga y la configuración que esté utilizando determinan estos elementos. Para obtener más información, vea Trabajar con valores de configuración.

Requisitos previos

Necesita los componentes siguientes para completar este tutorial:

-

Una edición de Visual Studio 2010 que incluye las herramientas para desarrolladores de Microsoft Office. Para obtener más información, vea [Configurar un equipo para desarrollar soluciones de Office](bb398242\(v=vs.100\).md).
  • Microsoft Office Word 2007 o Word 2010. 

vínculo a vídeo Dispone de una demostración en vídeo relacionada en How Do I: Use the Ribbon Designer to Customize the Ribbon in Excel?.

Crear el proyecto

El primer paso consiste en crear un proyecto de complemento de Word. Más adelante, personalizará la ficha Complementos de este documento.

Para crear un nuevo proyecto

  • Cree un proyecto de complemento de Word con el nombre MyRibbonAddIn.

    Para obtener más información, vea Cómo: Crear proyectos de Office en Visual Studio.

    Visual Studio abre el archivo de código ThisAddIn.cs o ThisAddIn.vb y agrega el proyecto MyRibbonAddIn al Explorador de soluciones.

Crear la ficha Complementos

Para crear la ficha Complementos, agregue un elemento Cinta (XML) al proyecto. Más adelante en este tutorial, agregará algunos botones a esta ficha.

Para crear la ficha Complementos

  1. En el menú Proyecto, haga clic en Agregar nuevo elemento.

  2. En el cuadro de diálogo Agregar nuevo elemento, seleccione Cinta (XML).

  3. Cambie el nombre de la nueva cinta de opciones por MyRibbon y haga clic en Agregar.

    Se abre el archivo MyRibbon.cs o MyRibbon.vb en el diseñador. También se agrega al proyecto un archivo XML denominado MyRibbon.xml.

  4. En el Explorador de soluciones, haga clic con el botón secundario del mouse en el archivo ThisAddin.cs o ThisAddin.vb y, a continuación, haga clic en Ver código.

  5. Agregue el código siguiente a la clase ThisAddin. Este código invalida el método CreateRibbonExtensibilityObject y devuelve la clase XML de la cinta de opciones a la aplicación de Office.

    Protected Overrides Function CreateRibbonExtensibilityObject() As  _
    Microsoft.Office.Core.IRibbonExtensibility
        Return New MyRibbon()
    End Function
    
    protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
    {
        return new MyRibbon();
    }
    
  6. En el Explorador de soluciones, haga clic con el botón secundario del mouse en el proyecto MyRibbonAddIn y, a continuación, haga clic en Generar. Compruebe si el proyecto se genera sin errores.

Agregar botones a la ficha Complementos

El objetivo de este complemento es ofrecer a los usuarios una manera de agregar texto reutilizable y una tabla específica al documento activo. Para proporcionar la interfaz de usuario, agregue dos botones a la ficha Complementos modificando el archivo XML de la cinta de opciones. Más adelante en este tutorial, definirá métodos de devolución de llamada para los botones. Para obtener más información acerca del archivo XML de cinta de opciones, vea XML de la cinta de opciones.

Para agregar botones a la ficha Complementos

  1. En el Explorador de soluciones, haga clic con el botón secundario del mouse en MyRibbon.xml y, a continuación, haga clic en Abrir.

  2. Reemplace el contenido del elemento tab por el código XML siguiente. Este código XML cambia la etiqueta del grupo de controles predeterminado a Content y agrega dos nuevos botones con las etiquetas Insert Text e Insert Table.

    <tab idMso="TabAddIns">
        <group id="ContentGroup" label="Content">
            <button id="textButton" label="Insert Text"
                 screentip="Text" onAction="OnTextButton"
                 supertip="Inserts text at the cursor location."/>
            <button id="tableButton" label="Insert Table"
                 screentip="Table" onAction="OnTableButton"
                 supertip="Inserts a table at the cursor location."/>
        </group>
    </tab>
    

Automatizar el documento mediante los botones

Debe agregar los métodos de devolución de llamada onAction para que los botones Insertar texto e Insertar tabla realicen acciones cuando un usuario haga clic en ellos. Para obtener más información sobre los métodos de devolución de llamada para los controles de cinta de opciones, vea XML de la cinta de opciones.

Para agregar métodos de devolución de llamada para los botones

  1. En el Explorador de soluciones, haga clic con el botón secundario del mouse en MyRibbon.cs o MyRibbon.vb y, a continuación, haga clic en Abrir.

  2. Agregue el código siguiente en la parte superior del archivo MyRibbon.cs o MyRibbon.vb. Este código crea un alias para el espacio de nombres Microsoft.Office.Interop.Word.

    Imports Word = Microsoft.Office.Interop.Word
    
    using Word = Microsoft.Office.Interop.Word;
    
  3. Agregue el método siguiente a la clase MyRibbon. Éste es un método de devolución de llamada para el botón Insertar texto que agrega una cadena al documento activo en la posición actual del cursor.

    Public Sub OnTextButton(ByVal control As Office.IRibbonControl)
        Dim currentRange As Word.Range = Globals.ThisAddIn.Application.Selection.Range
        currentRange.Text = "This text was added by the Ribbon."
    End Sub
    
    public void OnTextButton(Office.IRibbonControl control)
    {
        Word.Range currentRange = Globals.ThisAddIn.Application.Selection.Range;
        currentRange.Text = "This text was added by the Ribbon.";
    }
    
  4. Agregue el método siguiente a la clase MyRibbon. Éste es un método de devolución de llamada para el botón Insertar tabla que agrega una tabla al documento activo en la posición actual del cursor.

    Public Sub OnTableButton(ByVal control As Office.IRibbonControl)
        Dim missing As Object = System.Type.Missing
    
        Dim currentRange As Word.Range = Globals.ThisAddIn.Application.Selection.Range
        Dim newTable As Word.Table = Globals.ThisAddIn.Application.ActiveDocument.Tables.Add( _
                   currentRange, 3, 4)
    
        ' Get all of the borders except for the diagonal borders.
        Dim borders() As Word.Border = New Word.Border(6) {}
        borders(0) = newTable.Borders(Word.WdBorderType.wdBorderLeft)
        borders(1) = newTable.Borders(Word.WdBorderType.wdBorderRight)
        borders(2) = newTable.Borders(Word.WdBorderType.wdBorderTop)
        borders(3) = newTable.Borders(Word.WdBorderType.wdBorderBottom)
        borders(4) = newTable.Borders(Word.WdBorderType.wdBorderHorizontal)
        borders(5) = newTable.Borders(Word.WdBorderType.wdBorderVertical)
    
        ' Format each of the borders.
        For Each border As Word.Border In borders
            border.LineStyle = Word.WdLineStyle.wdLineStyleSingle
            border.Color = Word.WdColor.wdColorBlue
        Next
    End Sub
    
    public void OnTableButton(Office.IRibbonControl control)
    {
        object missing = System.Type.Missing;
        Word.Range currentRange = Globals.ThisAddIn.Application.Selection.Range;
        Word.Table newTable = Globals.ThisAddIn.Application.ActiveDocument.Tables.Add(
        currentRange, 3, 4, ref missing, ref missing);
    
        // Get all of the borders except for the diagonal borders.
        Word.Border[] borders = new Word.Border[6];
        borders[0] = newTable.Borders[Word.WdBorderType.wdBorderLeft];
        borders[1] = newTable.Borders[Word.WdBorderType.wdBorderRight];
        borders[2] = newTable.Borders[Word.WdBorderType.wdBorderTop];
        borders[3] = newTable.Borders[Word.WdBorderType.wdBorderBottom];
        borders[4] = newTable.Borders[Word.WdBorderType.wdBorderHorizontal];
        borders[5] = newTable.Borders[Word.WdBorderType.wdBorderVertical];
    
        // Format each of the borders.
        foreach (Word.Border border in borders)
        {
            border.LineStyle = Word.WdLineStyle.wdLineStyleSingle;
            border.Color = Word.WdColor.wdColorBlue;
        }
    }
    

Probar el complemento

Cuando ejecuta el proyecto, se abre Word y aparece la pestaña denominada Complementos en la cinta de opciones. Haga clic en los botones Insertar texto e Insertar tabla de la ficha Complementos para probar el código.

Para probar el complemento

  1. Presione F5 para ejecutar el proyecto.

  2. Confirme que la ficha Complementos está visible en la cinta de opciones.

  3. Haga clic en la ficha Complementos.

  4. Confirme que el grupo Contenido está visible en la cinta de opciones.

  5. Haga clic en el botón Insertar texto en el grupo Contenido.

    Se agrega una cadena al documento en la posición actual del cursor.

  6. Haga clic en el botón Insertar tabla en el grupo Contenido.

    Se agrega una tabla al documento en la posición actual del cursor.

Pasos siguientes

Puede aprender más acerca de la personalización de la interfaz de usuario de Office en estos temas:

Vea también

Tareas

Tutorial: Crear una pestaña personalizada usando el diseñador de la cinta de opciones

Conceptos

XML de la cinta de opciones

Otros recursos

Información general sobre la cinta de opciones