Vous êtes sur la page 1sur 35

7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

Original
Este contenido no se encuentra disponible en su idioma,
en su pero aquí tiene la versión
tiene la en inglés.
EN Este contenido no se encuentra disponible idioma, pero aquí versión en inglés.

Customizing the 2007 Office Fluent Ribbon


for Developers (Part 1 of 3)
Office 2007

Resumen: Aprende a personalizar la interfaz de usuario Fluent de Office 2007. También aprenden cómo las nuevas
características de Microsoft Visual Studio 2005 Tools para 2007 Microsoft Office System soporte RAD desarrollo de
personalizaciones de la cinta. (40 páginas impresas)

Frank Rice, Microsoft Corporation

Ken Getz, MCW Technologies, LLC

Publicado: Mayo de 2006

Actualizado: Octubre de 2006

Se aplica a: Microsoft Office Access 2007, Microsoft Office Excel 2007, Microsoft Office Outlook 2007, Microsoft Office
PowerPoint 2007, Microsoft Office Word 2007, Microsoft Visual Studio 2005 Tools para 2007 Microsoft Office System,
Microsoft Visual Studio 2005

Contenido

Una interfaz de usuario mejorada

Nuevas formas de mejorar la experiencia del usuario

¿Qué soluciones?

Personalización de la interfaz de usuario Fluent para aplicaciones de oficina más

Utilizando devoluciones de llamada

Dos formas de personalizar la interfaz de usuario Fluent

Adición de complementos basados en documentos a la interfaz de usuario Fluent

Personalización de la interfaz de usuario en Access 2007

Crear una cinta personalizada acceso a nivel de aplicación

Carga las personalizaciones en tiempo de ejecución

Escenarios de personalización de la cinta para otras aplicaciones

Uso de complementos COM para modificar la interfaz de usuario Fluent

Trabajar con complementos barra de comandos existentes

Actualización dinámica de la interfaz de usuario Fluent

https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3D… 1/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

Cargando imágenes

Conclusión

Recursos adicionales

Una interfaz de usuario mejorada


Muchas de las aplicaciones de 2007 Microsoft Office system tienen un aspecto nuevo. La nueva interfaz de usuario
Microsoft Office Fluent (IU) reemplaza el sistema actual de capas de menús, barras de herramientas y paneles de tareas
con un sistema más sencillo optimizado para la eficiencia y capacidad de descubrimiento. Ha mejorado la nueva interfaz
de usuario Fluent menús contextuales, información en pantalla mejorada, una minibarra de herramientas y métodos
abreviados de teclado que ayudan a mejorar la productividad y eficiencia del usuario.

Nota

Se implementa la interfaz de usuario fluida en varias aplicaciones en la versión 2007 de Microsoft Office, incluyendo
Microsoft Office Access 2007, Microsoft Office Excel 2007, Microsoft Office PowerPoint 2007 y Microsoft Office Word
2007. La cinta también está disponible en Microsoft Office Outlook 2007 mientras se edita un elemento de Outlook.
Puede personalizar la interfaz de usuario fluida a través de una combinación de marcado XML y cualquier lenguaje
basado en .NET Framework es compatible con Microsoft Visual Studio de Microsoft. También puede personalizar la
interfaz de usuario fluida mediante Microsoft Visual Basic para aplicaciones (VBA), Microsoft Visual C++ y Microsoft
Visual Basic 6.0.

Nuevas formas de mejorar la experiencia del usuario


Los desarrolladores han tomado ventaja de las herramientas y estructuras de programación en versiones anteriores de
Office para extender la interfaz de usuario fluida en formas creativas. Por ejemplo, el modelo de objetos de comando
barras permitió a los desarrolladores a construir soluciones en sus aplicaciones personalizadas de Office. Continuando esa
tradición, extensibilidad de la interfaz de usuario presenta un modelo innovador que se puede utilizar para mejorar la
experiencia del usuario. Utilizar lenguaje de marcado extensible (XML) y uno de varios lenguajes de programación
convencionales para manipular los componentes que conforman la interfaz de usuario fluida. Dado que XML es texto,
puede crear archivos de personalización en cualquier editor de texto, que simplifica el trabajo con la interfaz de usuario
fluida. También puede reutilizar los archivos de interfaz de usuario Fluent personalizados con un mínimo de ajustes
debido a que cada aplicación utiliza el mismo modelo de programación.

Figura 1. Lanzamiento de la interfaz de usuario fluida en las aplicaciones de 2007 Office

Utilizando archivos de formato XML para personalizar la interfaz de usuario Fluent grandemente reduce la necesidad de
complejos complementos basado en el modelo de objetos de barras de comandos. Sin embargo, los complementos

https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3D… 2/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

escritos para versiones anteriores de Office se continúan trabajando en la interfaz de usuario fluida con poca o ninguna
modificación.

¿Qué soluciones?
En versiones anteriores de Office, los desarrolladores utilizan el modelo de objetos de comando barras para construir el
código de Visual Basic que modifica la interfaz de usuario fluida. En la versión 2007 de Office, este código legado continúa
trabajando en la mayoría de los casos sin modificación. Sin embargo, los cambios realizados en las barras de herramientas
en Microsoft Office 2003, ahora aparecen en una ficha Complementos . El tipo de personalización que aparece depende
del diseño original del add-in. Por ejemplo, la oficina crea un grupo de Comandos de menú que contiene elementos
agregados a la estructura de menú anterior (como el menú archivo , el menú Insertar y el menú herramientas ). Oficina
también crea un grupo de Comandos de la barra de herramientas que contiene elementos a las barras de herramientas
integradas anteriores (como la barra de herramientas estándar , la barra de herramientas de formato y la barra de
herramientas de imagen ). Además, las barras de herramientas personalizados que se agregan un complemento o un
documento aparecen en el grupo Barras de herramientas personalizadas en la ficha Complementos .

Personalización de la interfaz de usuario Fluent para aplicaciones de


oficina más
Puede crear una aplicación fluida interfaz de usuario personalizada en Word 2007, Excel 2007 o PowerPoint 2007 en las
siguientes formas:

Mediante el uso de complementos COM en código administrado o no administrado

Mediante el uso específico de las aplicaciones los complementos, como .ppam y .xlam.

Mediante el uso de plantillas (.dotm archivos) en Word 2007

Nota

Access 2007 y Outlook 2007 implementan personalizaciones de la cinta en formas ligeramente diferentes de las otras
aplicaciones de oficina.

En un escenario típico, el código en un COM add-in contiene un procedimiento que devuelve el marcado XML de un
archivo de personalización externa o de XML contenidos en el código sí mismo. Cuando se inicia la aplicación, el
complemento de carga y ejecuta el código que devuelve el marcado XML. El código valida el marcado XML contra un
esquema XSD (aunque eso es opcional) y luego carga el XML en memoria y se aplica a la interfaz de usuario fluida.
Entonces aparece la interfaz de usuario fluida modificada. Controles y comandos de la interfaz de usuario utilizan
procedimientos de devolución de llamada para ejecutar código en el complemento.

Personalizaciones de nivel de documento utilizan el mismo formato XML y un archivo formatos de XML abierto de Office
con una de estas extensiones: .docx, .docm, .xlsx, .xlsm, .pptx o .pptm. Para estas soluciones, puede crea un archivo de
personalización que contiene el marcado XML y guardarlo en una carpeta. Posteriormente, deberá modificar las partes en
el contenedor para indicar el archivo de personalización de formatos de XML abierto de Office. Al abrir el documento en la
aplicación de Office, la aplicación carga el archivo de personalización en la memoria y lo aplica a la interfaz de usuario
fluida. Los comandos y controles de llaman código contenida en el documento para proporcionar la funcionalidad.

Utilizando devoluciones de llamada


https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3D… 3/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

Especifique las devoluciones de llamada para actualizar las propiedades y realizar acciones desde su interfaz de usuario
fluida en tiempo de ejecución. Por ejemplo, para especificar una acción que se produce cuando el usuario hace clic en un
botón en la cinta, debe suministrar la función de devolución de llamada onAction del botón. El marcado de la
extensibilidad de la cinta se ve así:

XML

<button id="myButton" onAction="MyButtonOnAction" />

This markup tells Office to call the MyButtonOnAction method when the button is clicked. The MyButtonOnAction
method has a specific signature depending on your choice of languages; here is an example:

C#

public void MyButtonOnAction (IRibbonControl control)


{
if (control.Id == "myButton")
{
System.Windows.Forms.MessageBox.Show("Button clicked!");
}
}

Note

Depending on how you create your customization, you may need to add a reference to the System.Windows.Forms
assembly to call the MessageBox.Show method.

The MyButtonOnAction procedure must be declared as public. The control parameter carries the unique id and tag
properties of the control, which enables you to use the same callback procedure for multiple controls.

Note

All attributes in the Ribbon XML customization markup use the camel-casing convention, which capitalizes the first
character of each word except the first word—examples include onAction and insertBeforeMso.

Two Ways to Customize the Fluent UI


Applications that support the Ribbon (except Access 2007, as described Creating an Access Application-Level Custom
Ribbon) provide two ways to customize the Fluent UI by using XML markup: by using Office Open XML Formats files that
contain XML markup, or by using COM add-ins that contain XML markup. (In the case of Outlook, only COM add-ins can
customize the Fluent UI.) Any changes that you specify in this XML markup add incrementally to the existing Fluent UI. For
example, providing XML markup that identifies a custom tab adds a single tab to the existing tabs in the host application.

All controls in Ribbon extensibility markup must include one of the following identifiers.

Table 1. One of these identifiers must be used with all controls

Identifier Description

https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3D… 4/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

id Specifies a unique identifier for the control. Used with custom controls. This identifier is passed as a
property on an IRibbonControl to callback functions.

idMso Specifies the identifier of a built-in control.

idQ Specifies a qualified identifier, prefixed with a namespace abbreviation, as in the following example.

XML

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"
xmlns:x="myNameSpace">
<button idQ="x:myButton" … />

Note

The example uses the namespace x so that two different add-ins can add to the same custom group—they just need to
refer to that custom group by its qualified name.

General Format of XML Markup Files


You can use XML markup to customize the Fluent UI. The following example shows the general format of an XML markup
file that customizes the Fluent UI in Word 2007. Examples in the following sections use this markup.

XML

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon>
<tabs>
<tab idMso="TabHome">
<group idMso="GroupFont" visible="false" />
</tab>
<tab id="CustomTab" label="My Tab">
<group id="SampleGroup" label="Sample Group">
<toggleButton id="ToggleButton1" size="large"
label="Large Toggle Button"
getPressed="ThisDocument.MyToggleMacro"
onAction="ThisDocument.MyActionMacro" />
<checkBox id="CheckBox1" label="A CheckBox"
screentip="This is a check box"
onAction="ThisDocument.MyCheckboxMacro" />
<editBox id="EditBox1" getText="ThisDocument.MyTextMacro"
label="My EditBox" onChange="ThisDocument.MyEditBoxMacro"/>
<comboBox id="Combo1" label="My ComboBox"
onChange="ThisDocument.MyComboBoxMacro">
<item id="Zip1" label="33455" />
<item id="Zip2" label="81611" />
<item id="Zip3" label="31561" />
</comboBox>
<dialogBoxLauncher>
<button id="Launcher1" screentip="My Launcher"
onAction="ThisDocument.MyLauncherMacro" />
</dialogBoxLauncher>
</group>
<group id="MyGroup" label="Sample My Group" >

https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3D… 5/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

<button id="Button1" label="My Large Button"


size="large" onAction="ThisDocument.MyButtonMacro" />
<button id="Button2" label="My Normal Button"
size="normal" onAction="ThisDocument.MyOtherButtonMacro" />
</group >
</tab>
</tabs>
</ribbon>
</customUI>

This XML markup results in a modified Fluent UI, as the following figure shows.

Figure 2. Sample of Fluent UI customization in Word

This sample makes the following changes to the Fluent UI in Word 2007, in the order shown:

1. The sample declares the default namespace for the XML markup.

2. The sample hides the built-in GroupFont group that is located on the built-in Home tab.

3. The sample adds a new CustomTab tab to the right of the last built-in tab, with the label My Tab.

Note

Use the id identifier attribute to create a custom item, such as a custom tab. Use the idMso identifier attribute
to refer to a built-in item, such as the TabHome tab.

4. The sample adds a new Sample Group group to the My Tab tab.

5. The sample adds a large-sized ToogleButton1 button to the Sample Group group. The markup specifies onAction
and getPressed callbacks.

6. The sample adds a CheckBox1 check box to the Sample Group group with a custom screentip. It also specifies an
onAction callback.

7. The sample adds an EditBox1 edit box to the Sample Group group and specifies an onChange callback.

8. The sample adds a Combo1 combo box to the Sample Group group with three items and specifies an onChange
callback.

9. The sample adds a Launcher1 launcher to the Sample Group group with the onAction callback set.

A launcher normally displays a custom dialog box that offers more options to the user.

10. The sample adds a new Sample Group group to the custom tab.

https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3D… 6/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

11. The sample adds a large-sized Button1 button to the Sample Group group and specifies a label and onAction
callback.

12. The sample adds a normal-sized Button2 button to the Sample Group group and specifies an onAction callback.

The easiest way to create Ribbon extensibility markup is to use a validating XML editor. Microsoft Visual Studio 2005
provides such an editor that you can use, if you can provide the necessary schema (XSD) file. In this case, you need a
current copy of customUI.xsd, which is available in several places. For example, when you install Microsoft Visual Studio
2005 Tools for the 2007 Microsoft Office System (also known as Visual Studio 2005 Tools for Office Second Edition), it
adds the schema to the Visual Studio schema catalog, so the schema is available by default in a Visual Studio project. You
can also find the schema at the 2007 Office System: XML Schema Reference Web site. In Visual Studio, create a new XML
file, and in the Properties window, set the Schemas property to include the customUI.xsd file (or enter the schema
reference in the code, as shown in the previous XML document). Then, as you enter XML content into the file, you can take
advantage of Microsoft IntelliSense technology. You might also find the XML Notepad 2006 download useful; it is
available from the Microsoft Download Center. This tool enables you to edit and view XML content in a tree-based format.

Customizing the Fluent UI by Using Office Open XML Formats Files


At the document level, the process for customizing the Fluent UI by using XML markup involves the following steps. For
more information, see Adding Document-Based Add-ins to the Fluent UI later in this article. You can follow these steps,
using the XML markup described in the previous section.

Note

Although it is useful to know what is going on within the Office Open XML Formats structure, you may be able to
bypass these steps. You can take advantage of the Custom Fluent UI Editor, available at OpenXMLDeveloper.org. This
tool enables you to open a document, insert custom UI, and then save the document with the Ribbon extensibility
markup in place. It performs for you the steps listed in this example. It also enables you to add custom icons to the
customUI folder, and makes it easy to refer to these icons. You can download the Custom UI Editor from the
OpenXMLDeveloper.org Custom UI Editor Tool Web page.

To customize the Fluent UI by using Office Open XML Formats files

1. Create a folder on your desktop named customUI.

2. Create the customization file in any text editor by writing XML markup that adds new components to the Fluent UI,
modifies existing components, or hides components. You can use the XML markup from the previous example, to
test the behavior. Save the file as customUI.xml (or any other name) in the folder you just created.

3. Validate the XML markup against your custom Fluent UI schema (optional).

4. Create a document in the Office application, and then save it as an Office Open XML Formats file with one of these
extensions: .docx, .docm, .xlsx, .xlsm, .pptm, or .pptx.

File name extensions for files that contain macros have an "m" suffix. These files can contain procedures that can be
called by Ribbon extensibility commands and controls.

Caution

You must save the document in macro-enabled format if you want to add code that reacts when the user
interacts with the Ribbon customization. Documents with this functionality include the .docm, .xlsm, and .pptm
formats. For all the examples in this article that include Microsoft Visual Basic for Applications (VBA) code, you
must save the host document as one of these formats.

https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3D… 7/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

5. Exit the Office application.

6. In Microsoft Windows Explorer, add the file name extension .zip to the document file name, and then double-click
the file to open it as a compressed folder.

7. Add the customization file to the container by dragging the customUI folder from the desktop to the compressed
folder.

8. Drag the _rels folder to the desktop. A folder named _rels containing the .rels file appears on the desktop.

9. Open the new folder, and then open the .rels file in a text editor.

10. Between the final <Relationship> element and the closing <Relationships> element, add a line that creates a
relationship between the document file and the customization file. Ensure that you specify the folder and file names
correctly (the Id attribute supplies a unique relationship ID for the customUI—its value is arbitrary).

XML

<Relationship Type="http://schemas.microsoft.com/office/2006/
relationships/ui/extensibility" Target="/customUI/customUI.xml"
Id="customUIRelID" />

11. Save the .rels file.

12. Drag the .rels file from the desktop to the _rels folder in the compressed file, replacing the existing .rels file.

13. Remove the .zip extension from the container file.

When you open the file in the Office application, the UI appears with your customizations. Depending on your application
settings, if you use the markup from the previous section in this example, you might receive several warning messages as
you open the document. Because you have not supplied the code that corresponds to the various callback procedures,
you have not really created a complete custom UI yet.

Adding Document-Based Add-ins to the Fluent UI


The following steps outline the basic process for creating a document that contains a simple custom UI in Excel 2007 that
can call a custom macro:

1. Create a macro-enabled Excel workbook with one macro.

2. Create a file to customize the Fluent UI by adding one tab, one group, and one button.

3. Create a procedure in VBA that the Fluent UI calls, in response to the button being clicked.

4. Especificar el atributo de devolución de llamada onAction en el marcado del botón, por lo que llama a la macro
que creó en el documento.

5. Modificar el contenido del contenedor de documento habilitado para macros que contiene el archivo que
personaliza la interfaz de usuario fluida.

6. Guarde el archivo con macros y luego abrirlo en Excel 2007.

Nota

https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3D… 8/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

Puede seguir los mismos pasos básicos al crear un documento de Word o PowerPoint habilitada para macros.

Para crear un libro de Excel que está habilitada para macros

1. Iniciar Excel 2007.

2. Haga clic en la ficha programador y haga clic en Visual Basic.

Nota

Si no ves la ficha programador , debe identificarse como un desarrollador. Para hacer esto en su aplicación,
haga clic en el Botón de Microsoft Office, haga clic en Opcionesde la aplicación , haga clic en Populary luego
seleccione Mostrar ficha programador en la cinta. Esta es una configuración global que le identifica a usted
como desarrollador en todas las aplicaciones de oficina que implementan la interfaz de usuario fluida.

3. En el Editor de Visual Basic, haga doble clic en ThisWorkbook para abrir la ventana de código .

4. Escriba la siguiente función VBA y haga clic en el icono de Excel en la esquina izquierda de la barra de herramientas
para volver a Excel.

VB

Sub MyMacro(ByVal control as IRibbonControl)


MsgBox("Hello World")
End Sub

5. Guarde el documento como un libro habilitado para macros con el nombre archivo extensión .xlsm.

Nota

Si guarda el documento como un documento .xlsx estándar, usted no será capaz de ejecutar el código de
macro. Al guardar el documento, debe seleccionar explícitamente la opción de menú Guardar como y
seleccione Excel Macro-Enabled libro (*.xlsm).

6. Salir de Excel.

Para crear el archivo que contiene el marcado XML para modificar la interfaz de usuario Fluent

1. Crear una carpeta en el escritorio denominado customUI.

2. Crear un nuevo archivo de texto, agregue el siguiente XML y guarde el archivo como customUI.XML en la carpeta
customUI en su escritorio.

XML

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="true">
<tabs>
<tab id="CustomTab" label="My Tab">
<group id="SimpleControls" label="My Group">

https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3D… 9/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

<button id="Button1" imageMso="HappyFace" size="large"


label="Large Button"
onAction="ThisWorkbook.MyMacro" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>

Para modificar los archivos contenidos en el contenedor de archivo habilitado para macros

1. En el explorador de Windows, buscar el archivo con macros que creó. Renombrar el archivo añadiendo la extensión
zip .

2. En el explorador de Windows, haga doble clic en el archivo para abrirlo.

3. Agregar el archivo de personalización al contenedor arrastrando la carpeta customUI desde el escritorio a la


carpeta comprimida y haciendo clic en el botón de Agregar cuando se le solicite.

4. Arrastre la carpeta _rels en el escritorio.

5. Abra la nueva carpeta y luego abra el archivo .rels en un editor de texto.

6. Agregue el texto siguiente entre el último elemento de la relación de < > y el < / relaciones > elemento y luego
guardar y cerrar el archivo.

XML

<Relationship Id="customUIRelID"
Type="http://schemas.microsoft.com/office/2006/relationships/ui/extensibility"
Target="customUI/customUI.xml" />

7. Arrastre el archivo .rels desde el escritorio a la carpeta _rels en la carpeta comprimida, reemplazando el archivo
.rels existente.

8. Retire la extensión .zip y el nombre del archivo contenedor.

9. Abra el archivo habilitado para macros en Excel 2007. La interfaz de usuario personalizada reemplaza la interfaz de
usuario Fluent incorporado.

Nota

Dependiendo de la configuración de seguridad, se puede ver una advertencia de seguridad pidiéndole que se
deshabilitaron las macros. Si, haga clic en el botón Opciones que aparece junto a la advertencia, seleccione
habilitar este contenidoy haga clic en Aceptar.

10. Haga clic en el botón grande. Clic en el botón desencadena la devolución de llamada onAction , que llama a la
macro en el libro, que muestra el mensaje "Hola mundo".

Personalización de la interfaz de usuario fluida con COM Add-Ins


Personalizaciones en el nivel de aplicación resultan en una interfaz de usuario fluida modificada que aparece en la
aplicación sin tener en cuenta que documento es abierto. Generalmente, los complementos COM hacer estas
modificaciones. Generalmente tienes dos opciones para la creación de complementos COM mediante el uso de código
https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3… 10/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

administrado: puede utilizar la plantilla Compartida Add-In que se incluye con Visual Studio 2005, o puede utilizar Visual
Studio 2005 Tools para Office segunda edición, que hace aún más fácil de crear complementos. Los pasos siguientes
describen la secuencia de llamada de método subyacente para un COM add-in que personaliza la cinta de opciones.
Aunque los conceptos son los mismos independientemente de cómo se crea el add-in, el código específico que usted
necesita para escribir será diferente, como se verá en secciones posteriores de este artículo que guiarán a través de
ejemplos que crean add-ins, mediante el uso de ambas técnicas.

Para personalizar la interfaz de usuario fluida mediante el uso de complementos COM

1. Crear un proyecto de complemento de COM.

El add-in que se crea debe implementar la interfaz Extensibility.IDTExtensibility2 y la interfaz


IRibbonExtensibility (encontrado en el espacio de nombres Microsoft.Office.Core ).

2. Construir el complemento y el proyecto de instalación e instale el proyecto.

3. Iniciar la aplicación de Office.

Cuando el complemento de carga, se desencadena el evento IDTExtensibility2::OnConnection , que inicializa el add-in,


al igual que en versiones anteriores de Office.

A continuación, oficina llama al método QueryInterface (por los complementos no administrado) o el método de dos
(para administrado complementos), que determina si el add-in que implementa la interfaz IRibbonExtensibility . Si lo
hace, oficina llama al método IRibbonExtensibility::GetCustomUI , que devuelve el marcado XML (de un archivo de
personalización XML o de marcado XML incrustado en el procedimiento), y luego oficina carga la interfaz de usuario fluida
modificada para requisitos particulares en la aplicación. Por último, la interfaz de usuario personalizado está listo para el
usuario.

PRECAUCIÓN

Debido a la arquitectura interna del mecanismo de devolución de llamada de la cinta, es importante que lleve a cabo
ninguna inicialización en el método GetCustomUI distintos de preparación y regresar el formato XML de la cinta.
Específicamente, no muestra los cuadros de diálogo o ventanas de mensaje desde dentro de este método de
devolución de llamada.

Cada control en el marcado XML expone su funcionalidad mediante llamadas a los procedimientos de devolución de
llamada. Por ejemplo, el marcado XML para un control de botón puede especificar un atributo onAction que apunta a un
procedimiento que se ejecuta cuando el usuario hace clic en el botón. En la mayoría de los casos, el procedimiento de
devolución de llamada expone una interfaz de IRibbonControl que identifica el control. La devolución de llamada puede
pasar otros argumentos, como un objeto Boolean que especifica el estado de un botón de alternar como presionado o no
presionado. La interfaz de IRibbonControl implementa tres propiedades: el objeto de contexto , el objeto del Id y la
propiedad Tag . El objeto de contexto es la ventana activa que contiene la cinta que desencadena la devolución de
llamada. El objeto del Id es el identificador de cadena del control personalizado especificado en el marcado. La propiedad
Tag es una propiedad no único que opcionalmente, puede especificar en el marcado.

Personalización de la interfaz de usuario en Access 2007


Las personalizaciones de extensibilidad de la cinta en Access 2007 compartan algunas de las mismas opciones que el resto
de aplicaciones de oficina, pero con algunas diferencias importantes. Al igual que con otras aplicaciones, usted personaliza
la interfaz de usuario fluida en el acceso mediante marcado XML. Y como las otras aplicaciones, puede utilizar archivos
externos que contienen marcado XML o los complementos COM integrar personalizaciones de la cinta en su aplicación.
Sin embargo, a diferencia de otras aplicaciones de Office, debido a archivos de base de datos de Access son binarios y no
se puede abrir como archivos de formatos de XML abierto de Office, se puede personalizar la cinta de acceso agregar
componentes al archivo de base de datos.
https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3… 11/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

Acceso proporcionan flexibilidad en la personalización de la interfaz de usuario fluida. Por ejemplo, marcado de
personalización puede ser almacenado en una tabla, incrustado en un procedimiento VBA, almacenado en otra base de
datos de Access o vinculado desde una hoja de cálculo de Excel. También puede especificar una interfaz de usuario
personalizada para la aplicación en su conjunto o para informes y formularios específicos.

Los siguientes escenarios pueden dar una idea de cómo personalizar la interfaz de usuario de acceso.

Nota

Porque estos tutoriales implican cambios a la base de datos, puede realizar estos pasos en una base de datos de
producción de no, tal vez utilizando una copia de una base de datos.

Personalización de la interfaz de usuario fluida en el acceso


Al personalizar la interfaz de usuario de acceso, tienes dos opciones: puede guardar sus personalizaciones en una mesa
especial y tener acceso automáticamente carga el marcado para usted, o puede guardar las personalizaciones en una
ubicación de su elección y cargar el marcado manualmente llamando el método Application.LoadCustomUI .

Si usted decide acceder a cargar las personalizaciones para usted, usted necesita almacenar en una tabla denominada
USysRibbons. La tabla debe tener al menos dos columnas: una columna de texto de 255 caracteres llamada
RibbonNamey una columna de Memo llamado RibbonXML. Coloque el nombre de la cinta en la columna de
RibbonName y el marcado de la cinta en la columna de RibbonXML . Después de cerrar y volver a abrir la base de datos,
puede seleccionar el valor predeterminado para utilizar en el cuadro de diálogo propiedades de acceso de la cinta. Puede
seleccionar una cinta que aparecen cuando se selecciona cualquier formulario o informe como una propiedad del
formulario o informe.

Si usted decide utilizar una técnica más dinámica, puede llamar al método LoadCustomUI , que carga las
personalizaciones de la cinta si el contenido XML se almacena en una tabla o no. Después de haber cargado las
personalizaciones llamando LoadCustomUI, puede asignar mediante programación el nombre personalización en tiempo
de ejecución.

Nota

Personalizaciones que se cargan mediante el método LoadCustomUI están disponibles sólo cuando la base de datos
está abierta. Usted tiene que llamar LoadCustomUI cada vez que abra la base de datos. Esta técnica es útil para
aplicaciones que necesitan para asignar la interfaz de usuario personalizada mediante programación en tiempo de
ejecución.

La firma para el método LoadCustomUI es como sigue.

expresión . LoadCustomUI (CustomUIName como cadena, CustomUIXML como cadena)

expresión devuelve un objeto Application .

CustomUIName es el nombre de la aduana Ribbon ID asociado con este marcado.

CustomUIXML contiene el formato de personalización XML.

Hay un ejemplo de usar el método LoadCustomUI Carga personalizaciones en tiempo de ejecución.

El siguiente procedimiento describe, de manera generalizada, cómo agregar personalizaciones de nivel de aplicación en el
acceso. Una sección posterior incluye un completo tutorial.

Aplicar una cinta personalizada de nivel de aplicación en tiempo de diseño


https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3… 12/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

1. Crear una tabla denominada USysRibbons con columnas como se describió anteriormente. Insertar filas para cada
cinta diferentes que desea poner a disposición.

2. Cierre y luego volver a cargar la base de datos.

3. Haga clic en el Botón de Microsoft Officey haga clic en Opciones de Access.

4. Haga clic en la opción de Base de datos actual , en la sección de la cinta y las opciones de barra de
herramientas , haga clic en la lista desplegable de Nombre de la cinta y haga clic en una de las cintas.

Para quitar una personalización existente (de modo que su base de datos utiliza el valor predeterminado de interfaz de
usuario Fluent), eliminar el nombre existente de la cinta de la lista de Nombre de la cinta y dejar un valor vacío para el
nombre de la cinta.

El siguiente procedimiento describe, de manera generalizada, cómo agregar personalizaciones de nivel de formulario o
personalizaciones de nivel de informe en Access.

Para asignar una cinta personalizada específica para un formulario o informe

1. Seguir el proceso descrito anteriormente para hacer la cinta modificado para requisitos particulares disponibles
para la aplicación, agregando la tabla USysRibbons .

2. Abra el formulario o informe en la vista Diseño.

3. En la ficha diseño , haga clic en Hoja de propiedades.

4. En la ventana propiedades , en la ficha otros , haga clic en la lista desplegable de Nombre de la cinta y haga clic
en una de las cintas.

5. Guardar, cerrar y luego volver a abrir el formulario o informe. Se muestra la interfaz de usuario ha seleccionado.

Nota

Las fichas que se muestran en la interfaz de usuario Fluent son aditivos. Es decir, a menos que usted
específicamente oculta las pestañas o establece el atributo de empezar de cero en True, las fichas mostradas
por una forma o interfaz de usuario del informe aparecen además de las fichas existentes.

Para explorar aún más este proceso, trabajan a través de los siguientes ejemplos.

La primera parte del ejemplo establece una opción que reporta los errores que existen cuando se carga la interfaz de
usuario personalizada (aunque está realizando estos pasos en el acceso, puede realizar pasos similares en otras
aplicaciones).

Crear una cinta personalizada acceso a nivel de aplicación


Para crear una cinta personalizada de acceso a nivel de aplicación

1. Iniciar el acceso. Abrir una base de datos existente o crear una nueva base de datos.

2. Haga clic en el Botón de Microsoft Office, haga clic en Opciones de Accessy haga clic en la ficha avanzado .

3. En la sección General , seleccione la opción Mostrar a usuario en errores de interfaz (esta opción puede ser en
un lugar diferente, en diferentes aplicaciones).

4. Haga clic en Aceptar para cerrar el cuadro de diálogo Opciones de Access .


https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3… 13/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

A continuación, cree una tabla que contiene el marcado XML de personalización.

5. Con una base de datos abierta en acceso, haga clic derecho en el panel de navegación . Elija Opciones de
navegacióny haga clic en Mostrar objetos del sistema. (Usted no puede ver la tabla USysRibbons en el panel de
navegación si no se establece esta opción.) Haga clic en Aceptar para cerrar el cuadro de diálogo. Las tablas de
sistema de acceso aparecen en el panel de navegación.

6. En la ficha crear , haga clic en Diseño de tabla.

7. Agregar los siguientes campos a la tabla.

Tabla 2. Definiciones de campo de tabla USysRibbons

Nombre del campo Tipo

ID Autonumérico

RibbonName Texto

RibbonXml Memo

8. Seleccione el campo ID . En la ficha diseño , seleccione Clave principal.

9. Haga clic en el Botón de Microsoft Officey haga clic en Guardar. Nombre de la nueva tabla USysRibbons.

10. Haga la ficha USysRibbons y, a continuación, haga clic en Vista Hoja de datos.

11. Agregue los siguientes datos a los campos que ha creado.

Tabla 3. Datos de la tabla USysRibbons

Nombre del
Valor
campo

ID (Autonumérico)

RibbonName HideData

RibbonXml XML

<customUI
xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
<tabs>
<tab idMso="TabCreate" visible="false" />
<tab id="dbCustomTab" label="A Custom Tab"
visible="true">
<group id="dbCustomGroup" label="A Custom Group">
<control idMso="Paste" label="Built-in Paste"
enabled="true"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>

https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3… 14/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

Este marcado establece el atributo startfromScratch en Falsey luego esconde la ficha crear incorporada. A
continuación, se crea una ficha personalizada y un grupo personalizado y agrega el control de goma incorporado
al grupo.

12. Cierre la tabla.

13. Cierre y luego volver a abrir la base de datos.

14. Haga clic en el Botón de Microsoft Officey haga clic en Opciones de Access.

15. Haga clic en la ficha Base de datos actual y desplácese hacia abajo hasta encontrar la sección de la cinta y
opciones de la barra de herramientas .

16. En la lista desplegable de Nombre de la cinta , seleccione HideData. Haga clic en Aceptar para cerrar el cuadro
de diálogo.

17. Cierre y vuelva a abrir la base de datos.

El grupo Editar ya no aparece, y la interfaz de usuario fluido incluye A medida ficha, que contiene el grupo de Un
grupo de medida con el botón de Goma incorporado .

Figura 3. La interfaz de usuario de acceso a nivel de aplicación

18. Para limpiar, repetir los pasos anteriores para mostrar el cuadro de diálogo Opciones de Access . Borrar el
contenido de la opción de Nombre de la cinta , por lo que Access muestra con fluidez de la interfaz de usuario
predeterminado después de cerrar y volver a abrir la base de datos.

Nota

También puede utilizar una cinta de la tabla USysRibbons a la interfaz de usuario para un determinado
formulario o informe. Para ello, abra el formulario o informe en modo diseño o Layout y establece la propiedad
RibbonName de en el nombre de la cinta que desea utilizar. Debe seleccionar la forma, en lugar de cualquier
control o sección en el formulario, antes de establecer esta propiedad.

Carga las personalizaciones en tiempo de ejecución


Si desea cargar las personalizaciones estática en tiempo de ejecución, puede guardar las personalizaciones en la tabla
USysRibbons y establecer un formulario o RibbonName propiedad de informe según sea necesario. Sin embargo, si
usted necesita crear personalizaciones dinámicas, llame al método Application.LoadCustomUI . En el ejemplo siguiente
se crea una personalización de la cinta que muestra un botón para cada formulario en la aplicación y se encarga de la
devolución de llamada onAction para cada botón para cargar el formulario solicitado.

https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3… 15/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

Para crear una personalización de la cinta dinámica

1. Cargar la base de datos que usted trabajó con en la sección anterior en Access 2007. Si su base de datos no incluye
ya más de una forma, crear unos formularios y agregar un control o dos para cada forma.

2. En la ficha crear , en el otro grupo, haga clic en el menú desplegable del botón Macro y haga clic en módulo de.

3. En el Editor de Visual Basic en el menú Ver , haga clic en Ventana Propiedades.

4. En la ventana propiedades , en el cuadro de propiedad nombre , cambie el nombre del módulo a RibbonLoader.

5. En la ventana de código, inserte el código siguiente. Aunque este método no devuelve un valor, debe ser una
función, de lo contrario, no se puede llamar desde una macro de Access.

VB

Function CreateFormButtons()
Dim xml As String
xml = _
"<customUI xmlns=""http://schemas.microsoft.com/" & _
"office/2006/01/customui"">" & vbCrLf & _
" <ribbon startFromScratch=""false"">" & vbCrLf & _
" <tabs>" & vbCrLf & _
" <tab id=""DemoTab"" label=""LoadCustomUI Demo"">" & _
vbCrLf & _
" <group id=""loadFormsGroup"" label=""Load Forms"">" & _
vbCrLf & _
"{0}" & vbCrLf & _
" </group>" & vbCrLf & _
" </tab>" & vbCrLf & _
" </tabs>" & vbCrLf & _
" </ribbon>" & vbCrLf & _
"</customUI>"

Dim template As String


template = "<button id=""load{0}Button"" " & _
"label=""Load {0}"" onAction=""HandleOnAction"" " & _
"tag=""{0}""/>" & vbCrLf

Dim formContent As String


Dim frm As AccessObject
For Each frm In CurrentProject.AllForms
formContent = formContent & _
Replace(template, "{0}", frm.Name)
Next frm

xml = Replace(xml, "{0}", formContent)


Debug.Print xml
On Error Resume Next
' If you call this code from the AutoExec macro,
' the only way it can fail is if you have a
' customization with the same name in the
' USysRibbons table.
Application.LoadCustomUI "FormNames", xml
End Function

Cuando se ejecuta el código, crea marca que podría ser el siguiente XML, si su aplicación contiene dos formularios
Form1 y Form2 el nombre.

https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3… 16/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

XML

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
<tabs>
<tab id="DemoTab" label="LoadCustomUI Demo">
<group id="loadFormsGroup" label="Load Forms">
<button id="loadForm2Button" label="Load Form2"
onAction="HandleOnAction" tag="Form2"/>
<button id="loadForm1Button" label="Load Form1"
onAction="HandleOnAction" tag="Form1"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>

Este marcado crea una nueva pestaña LoadCustomUI Demo que contiene un grupo de Formas de carga . Dentro
del grupo, la cinta muestra un botón para cada formulario en la aplicación (Form1 y Form2) e indica que cada
botón debe llamar al procedimiento de devolución de llamada HandleOnAction cuando hace clic en. Además, el
marcado establece el atributo de la etiqueta de cada botón para que contenga el nombre de la forma de acceso
que debe abrir su código.

6. Agregue el procedimiento siguiente en el módulo mismo. Este procedimiento proporciona el comportamiento de


devolución de llamada. Se abre el formulario seleccionado y establece su propiedad RibbonName para la
personalización de la cinta de FormNames .

VB

Public Sub HandleOnAction(control As IRibbonControl)


' Load the specified form, and set its
' RibbonName property so that it displays
' the custom UI.
DoCmd.OpenForm control.Tag
Forms(control.Tag).RibbonName = "FormNames"
End Sub

7. Guardar la base de datos y cerrar el Editor de Visual Basic.

8. Si la aplicación no contiene al menos dos formas, crear formas hasta que la aplicación contiene al menos dos
formas.

9. Decidir que uno de los formularios debe ser el formulario de inicio de la aplicación y abrir ese formulario en la vista
Diseño.

10. En la ventana propiedades , en la ficha evento , encontrar la propiedad de evento onLoad . Haga clic en el botón
de puntos suspensivos (...) a la derecha del valor de la propiedad, seleccione Generador de código en la lista de
opciones y haga clic en Aceptar. (Si no ves la ventana propiedades , en la ficha diseño , haga clic en Hoja de
propiedades.)

11. En el Editor de Visual Basic, modifique el procedimiento Form_Load para que se vea como el siguiente código.

VB

Private Sub Form_Load()


CreateFormButtons

https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3… 17/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

Me.RibbonName = "FormNames"
End Sub

12. En el menú herramientas , haga clic en referencias. Seleccione Biblioteca de objetos de Microsoft Office 12.0
(necesita una referencia a esta biblioteca de objeto se utiliza la clase IRibbonControl ) y haga clic en Aceptar.

13. Guardar la base de datos y cerrar el Editor de Visual Basic.

14. Haga clic en el Botón de Microsoft Officey haga clic en Opciones de Access.

15. Haga clic en la ficha Base de datos actual .

16. En la sección Opciones de la aplicación , seleccione su formulario de inicio en la lista Mostrar formulario de
formularios y haga clic en Aceptar.

17. Cierre y vuelva a abrir la base de datos.

Se abre el formulario de inicio, junto con una ficha personalizada que contiene un grupo que muestra un botón
para cada formulario en su aplicación. Haga clic en cualquiera de los botones: acceso abre el formulario
correspondiente, manteniendo la misma interfaz de usuario personalizada.

Además de las técnicas descritas, puede añadir personalizaciones de la cinta de acceso utilizando un agregar-in. COM
complementos COM proporcionan el beneficio de agregar funcionalidad de extensibilidad de la cinta personalizada como
un paquete sin necesidad de añadir código de VBA para cada aplicación. Los complementos se implementan en el acceso
al igual que en otras aplicaciones de Office.

Nota

Aunque puede utilizar la plantilla de Visual Studio 2005 Compartido Add-In para crear un complemento COM para el
acceso, puede utilizar Visual Studio 2005 Tools para Office segunda edición para crear complementos COM para el
acceso. Acceso no es una de las aplicaciones soportadas en Visual Studio 2005 Tools para Office segunda edición.

Escenarios de personalización de la cinta para otras aplicaciones


Considere los siguientes escenarios que ilustran formas de modificar la interfaz de usuario Fluent para caber sus
necesidades.

Nota

Para demostrar el comportamiento de las personalizaciones de la cinta en las secciones siguientes, puede utilizar las
técnicas discutidas en este artículo, en la sección Personalización de la interfaz de usuario Fluent para aplicaciones de
oficina más.

Creando soluciones a medida


Aunque cada ejemplo que has visto hasta ahora modifica la cinta existente, puede crear la interfaz de usuario todo desde
cero. Puede hacer esto si usted quiere construir su propia interfaz de usuario y diseño de su propio diseño personalizado
para la cinta. Si se establece atributo startFromScratch del elemento de la cinta en True, la cinta esconde todo su
contenido (por lo que no tienes que hacer el trabajo para ocultar todo manualmente). Cuando se establece el atributo
startFromScratch en True, hace los siguientes cambios:
https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3… 18/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

Oculta todas las existentes cinta pestañas, incluyendo la ficha Complementos

Modifica el menú de Microsoft Office para incluir sólo la nueva, abierto, Guardar, aplicación de Opcionesy
comandos de salida

Caution note PRECAUCIÓN

En el archivo de marcado XML puede especificar que desea ocultar los controles en el menú de Microsoft
Office . Debe solicitar explícitamente estas alteraciones en el marcado XML estableciendo el atributo Visible
para el control particular en False. Ocultar estos comandos puede poner la aplicación en un estado
irrecuperable que puede borrar sólo por cerrar la aplicación y desinstalar la solución.

El atributo startFromScratch hace ningunos cambios a la barra de estado, que sigue presente.

El formato XML de ejemplo siguiente utiliza el atributo startFromScratch para personalizar la interfaz de usuario fluida.

XML

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


<ribbon startFromScratch="true" >
<tabs>
<tab id="CustomTab" label="My Tab" >
<group id="SimpleControls" label="My Group">
<toggleButton id="ToggleButton1"
size="large" label="Large Toggle Button"/>
<button id="Button2" label="My Button " />
<comboBox id="Combo1" label="ComboBox">
<item id="Month1" label="January" />
<item id="Month2" label="February" />
<item id="Month3" label="March" />
</comboBox>
</group>
</tab>
</tabs>
</ribbon>
</customUI>

Esta muestra esconde todos los componentes integrados en la interfaz de usuario Fluent y las reemplaza con diversos
controles, una ficha personalizada y un grupo.

Mostrar y ocultar las pestañas


Puede utilizar marcado como en el ejemplo siguiente para mostrar u ocultar fichas integradas o las fichas personalizadas.

XML

<tab idMso="TabHome" visible="false" />

Si usted quiere determinar mediante programación si desea mostrar u ocultar una ficha (u otro elemento), puede
proporcionar un procedimiento de devolución de llamada. Es decir, se puede definir el elemento en el XML siguiente.

XML

https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3… 19/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

<tab idMso="TabInsert" getVisible="getVisibleCallback" />

Luego, en un add-in, o código de VBA, puede proporcionar un procedimiento que devuelve un valor booleano que indica
si el elemento es visible. Por ejemplo, puede utilizar código como el siguiente para ocultar de la ficha Insertar en Word
2007 los fines de semana.

VB

Public Sub getVisibleCallback(control As IRibbonControl, _


ByRef visible As Variant)
Select Case DatePart("w", Date)
Case vbSaturday, vbSunday
visible = False
Case Else
visible = True
End Select
End Sub

Mostrar y ocultar grupos


Puede utilizar código como el siguiente ejemplo (junto con el procedimiento de devolución de llamada en el ejemplo
anterior) para mostrar u ocultar grupos integrados o grupos personalizados.

XML

<tab idMso="TabView">
<group idMso="GroupDocumentViews" visible="false" />
<group id="MyCustomGroup" label="Custom Group"
getVisible="getVisibleCallback" />
</tab>

Agregar fichas personalizadas


Puede utilizar el siguiente ejemplo de código para agregar fichas personalizadas.

XML

<tab id="CustomTab" label="My Tab" />

Agregar grupos personalizados con controles


Puede utilizar el siguiente ejemplo de código para agregar un grupo personalizado y luego agregar controles integrados.

XML

<group id="CustomGroup" label="My Group">


<toggleButton idMso="Italic" />
<toggleButton idMso="Bold" />
<button idMso="FileSave" />
</group>

https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3… 20/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

Puede utilizar el código siguiente para agregar un grupo personalizado y luego agregar controles personalizados.

XML

<group id="CustomGroup" >


<toggleButton id="MyToggleButton" size="large"
label="Insert My Object"/>
<checkBox id="AllowChanges" label="Allow Changes" />
<dropDown id="ChooseDepartment" showLabel="true"
label="Choose Department">
<item id="Dept1" label="Shipping" />
<item id="Dept2" label="Accounting" />
<item id="Dept3" label="Engineering" />
</dropDown>
</group>

Crear un menú personalizado con los controles y menús anidados


Puede utilizar el siguiente ejemplo de código para crear un menú personalizado y luego añadir menús incorporados
anidados, controles y menús personalizados y controles. Este marcado también incluye dos separadores de menú, con y
sin texto.

XML

<menu id="MyMenu" label="Test Menu" itemSize="normal">


<toggleButton idMso="Bold"/>
<button id="MenuButton1" label="Button1" />
<menuSeparator id="separator1"/>
<toggleButton id="MenuToggleButton1" label="ToggleButton" />
<button idMso="FileExit"/>
<menu id="Nested1" label="Advanced" itemSize="normal">
<button idMso="Cut"/>
<button idMso="Copy"/>
<button idMso="Paste"/>
<menuSeparator id="separator2" title="Large Buttons Below"/>
<menu id="Nested2" label="Large" itemSize="large">
<button idMso="Cut"/>
<button idMso="Copy"/>
<button idMso="Paste"/>
</menu>
</menu>
</menu>

Agregar cuadros combinados o cuadros de lista desplegable con elementos anidados


Puede utilizar el siguiente ejemplo de código para agregar un control de cuadro combinado integrado con elementos
(controles de lista desplegable utilizan la misma sintaxis).

XML

<comboBox id="ComboBox1" label="ComboBox">


<item id="item1" label="one" imageMso="_1" />
<item id="item2" label="two" imageMso="_2" />
<item id="item3" label="three" imageMso="_3" />
</comboBox>

https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3… 21/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

Agregar controles personalizados galería con elementos


Puede utilizar el siguiente ejemplo de código para agregar controles de galería con elementos y entonces agregar un
control de botón personalizado.

XML

<gallery id="MonthGallery" imageMso="DateAndTimeInsert"


label="Pick a Month:" columns="3" rows="4" onAction="InsertMonth" >
<item id="Month1" label="January"/>
<item id="Month2" label="February"/>
<item id="Month3" label="March"/>
<item id="Month4" label="April"/>
<item id="Month5" label="May"/>
<item id="Month6" label="June"/>
<item id="Month7" label="July"/>
<item id="Month8" label="August"/>
<item id="Month9" label="September"/>
<item id="Month10" label="October"/>
<item id="Month11" label="November"/>
<item id="Month12" label="December"/>
<button id="InsertMonthButton"
label="Insert current month" onAction="InsertCurrentMonth"/>
</gallery>

Los siguientes procedimientos VBA proporcionan un comportamiento de devolución de llamada para los elementos de la
galería y el botón de la galería.

VB

Sub InsertMonth(control As IRibbonControl, _


selectedId As String, selectedIndex As Integer)

Dim text As String


Select Case control.ID
Case "MonthGallery"
text = monthName(selectedIndex + 1)
End Select
Selection.InsertAfter text
End Sub

Sub InsertCurrentMonth(control As IRibbonControl)


Select Case control.ID
Case "InsertMonthButton"
text = monthName(DatePart("m", Date))
End Select
Selection.InsertAfter text
End Sub

Note Nota

Al definir la galería, todos los elementos elemento deben aparecer antes de cualquier elemento de botón.

Puede rellenar controles de galería en tiempo de ejecución utilizando devoluciones de llamada. Puede utilizar la
devolución de llamada de getItemCount para determinar el número de elementos a mostrar, las devoluciones de
https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3… 22/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

llamadas getItemHeight y getItemWidth para recuperar la altura y la anchura de los elementos de la galería, la
getItemImage y las devoluciones de llamada getItemLabel para recuperar la imagen y la etiqueta para cada elemento y
la devolución de llamada getSelectedItemID o getSelectedItemIndex para recuperar el ID o el índice seleccionado.

Llenar una lista desplegable dinámica


Usted podría no saber que elementos para mostrar en una cinta de control hasta el tiempo de ejecución. Las devoluciones
de llamada permiten suministrar los valores basados en las condiciones actuales. Por ejemplo, puede mostrar una lista de
las líneas del documento. En el ejemplo siguiente se muestra cómo puede proporcionar una lista de las líneas de
documento actual.

Incluir el siguiente control en la personalización de la cinta.

XML

<dropDown id="HeadingsDropDown"
getItemCount="GetItemCount"
getItemID="GetItemID"
getItemLabel="GetItemLabel"/>

Luego, en el código (en este caso, en un módulo del Editor de Visual Basic dentro de un documento de Word), agregue
los siguientes procedimientos de devolución de llamada.

VB

Sub GetItemCount(control As IRibbonControl, ByRef count)


Dim varItems As Variant
varItems = ActiveDocument.GetCrossReferenceItems(wdRefTypeHeading)
count = UBound(varItems)
End Sub

Sub GetItemLabel(control As IRibbonControl, index As Integer, _


ByRef label)
Dim varItems As Variant
varItems = ActiveDocument.GetCrossReferenceItems(wdRefTypeHeading)
label = varItems(index + 1)
End Sub

Sub GetItemID(control As IRibbonControl, index As Integer, ByRef ID)


ID = "heading" & index
End Sub

Ahora, cuando abra la lista desplegable, muestra todos los encabezados en el documento.

Agrupar controles individuales


De forma predeterminada, la cinta determina las posiciones de los controles que agregue a un grupo. Si desea definir el
diseño de los controles con mayor precisión, se pueden agrupar los controles dentro de una o varias cajas. Cuando se crea
un cuadro, especifique su orientación (horizontal o vertical). Un grupo puede contener múltiples cajas, y puede incluir
separadores verticales entre las cajas. (Los divisores verticales se crean mediante el control del separador, que se utiliza
sólo para las cajas verticales).

En el ejemplo siguiente se establece tres grupos, uno que utiliza las cajas horizontales, que utiliza las cajas verticales y uno
que no utiliza cuadros. La figura 4 muestra los resultados.

XML

https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3… 23/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

<group id="CustomGroup1" label="Horizontal Boxes"


insertBeforeMso="GroupClipboard">
<box id="box1" boxStyle="horizontal">
<button id="buttonA1" label="Button1"/>
<button id="buttonA2" label="Button2"/>
</box>
<box id="box2" boxStyle="horizontal">
<button id="buttonAA" label="ButtonA"/>
<button id="buttonAB" label="ButtonB"/>
<button id="buttonAC" label="ButtonC"/>
</box>
</group>
<group id="CustomGroup2" label="Vertical Boxes"
insertBeforeMso="GroupClipboard">
<box id="box3" boxStyle="vertical">
<button id="buttonB1" label="Button1"/>
<button id="buttonB2" label="Button2"/>
</box>
<separator id="separator2"/>
<box id="box4" boxStyle="vertical">
<button id="buttonBA" label="ButtonA"/>
<button id="buttonBB" label="ButtonB"/>
<button id="buttonBC" label="ButtonC"/>
</box>
</group>
<group id="CustomGroup3" label="No Boxes"
insertBeforeMso="GroupClipboard">
<button id="buttonC1" label="Button1"/>
<button id="buttonC2" label="Button2"/>
<button id="buttonCA" label="ButtonA"/>
<button id="buttonCB" label="ButtonB"/>
<button id="buttonCC" label="ButtonC"/>
</group>

Figura 4. Estilos de caja diferentes

Different box styles

Uso de complementos COM para modificar la interfaz de usuario


Fluent
Puede utilizar complementos COM para modificar la interfaz de usuario fluida. Cuando usted decide crear un COM add-in
que incorpora cinta personalización y aplicaciones de código administrado, tienes dos opciones distintas. Puede crear un
estándar compartido add-in, utilizando la plantilla Compartida Add-In que viene con Visual Studio 2005. O, si ha
instalado Visual Studio 2005 Tools para Office segunda edición, puede crear un COM add-in que tiene varias ventajas
sobre el estándar compartida complemento.

Entre otras ventajas, los complementos que se crean mediante el uso de Visual Studio 2005 Tools para Office segunda
edición se ejecutan en dominios de aplicación independientes, y el modelo de programación para estos complementos es
más simple y más fácil de mantener, que el utilizado por el común de plantilla. Para más información, vea migrar un
Shared Add-in a un Visual Studio 2005 Tools para la Oficina sistema SE Add-in .

Utilizando un proyecto de complemento compartido para modificar la interfaz de usuario Fluent


En el ejemplo siguiente se utiliza un administrado COM add-in para añadir una interfaz de usuario personalizada a Word
2007. El add-in crea un botón, una ficha personalizada y un grupo. Al hacer clic en el botón, complemento inserta un

https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3… 24/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

nombre de compañía en la ubicación del cursor.

Para crear la solución agregar-en

1. Inicie Visual Studio 2005.

2. En el menú archivo , seleccione nuevoy haga clic en proyecto.

3. En el cuadro de diálogo Nuevo proyecto , en el panel Tipos de proyecto , expanda Otros tipos de proyecto,
haga clic en extensibilidady seleccione Shared Add-in.

4. En el cuadro nombre , escriba InsertCompanyAddIny haga clic en Aceptar para crear el proyecto.

5. En la primera página del Shared agregar Asistente para, haga clic en siguiente.

6. En la página Seleccione un lenguaje de programación , seleccione Visual C# o Visual Basicy haga clic en
siguiente.

7. En la página Seleccione una aplicación Host , desactive todas las selecciones excepto Microsoft Wordy haga clic
en siguiente.

8. En la página ingrese un nombre y descripción , escriba InsertCompanyAddIn para el nombre e Insertar nombre
de la empresa para la descripción y haga clic en siguiente.

9. En la página Elija Add-en opciones , seleccione me gustaría mi Add-in para cargar cuando se carga la
aplicación host, haga clic en siguientey haga clic en Finalizar.

Visual Studio crea una nueva solución que contiene dos proyectos: el complemento de sí mismo y un proyecto de
instalación. (El proyecto de instalación le permite instalar el add-in en equipos de otros usuarios, y hace más fácil para
usted, en tiempo de diseño, instalar y desinstalar el add-in).

Para interactuar con Word 2007 y el modelo de objetos de la cinta, agregue referencias a dos las bibliotecas de tipos.

Añadir referencias

1. En el Explorador de soluciones, expanda la carpeta referencias .

Si no ves la carpeta referencias , en el menú proyecto , haga clic en Mostrar todos los archivos.

2. Eliminar la referencia Microsoft.Office.Core .

3. Haga clic derecho en la carpeta referencias y haga clic en Agregar referencia.

4. Haga clic en la ficha COM , seleccione Biblioteca de objetos de Microsoft Office 12.0y haga clic en Aceptar.

5. En la parte superior del archivo de código abierto, agregue las siguientes declaraciones al proyecto.

VB

Imports Microsoft.Office.Core
Imports Word = Microsoft.Office.Interop.Word

C#

using Microsoft.Office.Core;
using Word = Microsoft.Office.Interop.Word;

https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3… 25/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

Para crear un archivo de personalización XML

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

2. En el cuadro de diálogo Agregar nuevo elemento , seleccione Archivo XML. Nombre el nuevo archivo
Ribbon.xmly haga clic en Agregar.

3. En el nuevo archivo XML, agregue el siguiente marcado XML.

XML

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon>
<tabs>
<tab id="CustomTab" label="My Tab">
<group id="SampleGroup" label="Sample Group">
<button id="Button" label="Insert Company Name"
size="large" onAction="InsertCompanyName" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>

4. Guarde y cierre el archivo.

Es más fácil utilizar el archivo XML si es tratada como un recurso en el archivo de recursos del proyecto.

Para crear el recurso XML

1. En Explorador de soluciones, seleccione Ribbon.xml.

2. En la ventana propiedades , seleccione la propiedad Build Action y seleccione Recurso incrustado en la lista de
opciones.

3. En el menú proyecto , haga clic en Propiedades de InsertCompanyAddIn.

4. Haga clic en la ficha recursos .

5. Desde el Explorador de soluciones, arrastre Ribbon.xml a la superficie de diseño recursos .

Esta acción crea un nuevo recurso basado en el archivo que contiene el XML contenido. De ahora en adelante, el
archivo de Ribbon.xml se almacena automáticamente como un recurso de aplicación y puede recuperar este
contenido mediante características de lenguaje de Visual Basic o Visual C#.

6. Cierre la ventana de recursos . Cuando se le pida, haga clic en sí para guardar los recursos.

Para acceder a la aplicación host y trabajar con la cinta

1. En el Explorador de soluciones, haga clic derecho en Connect.cs o Connect.vby haga clic en Ver código.

2. Encontrar la declaración existente para la variable applicationObject y modificar por lo que se refiere a un objeto
Word.Application . Es decir, modifique la declaración para que se vea como el siguiente código.

VB

Private applicationObject As Word.Application

https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3… 26/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

C#

private Word.Application applicationObject;

3. Modificar la primera línea del método OnConnection , que crea una instancia del objeto Word.Application .

VB

applicationObject = DirectCast(application, Word.Application)

C#

applicationObject =(Word.Application)application;

4. (Sólo en Visual Basic) Modificar la línea de código, en la parte superior de la clase, que comienza con los
implementos, añadiendo soporte para implementar el espacio de nombres IRibbonExtensibility . Visual Basic
inserta el procedimiento GetCustomUI automáticamente.

VB

Implements Extensibility.IDTExtensibility2, IRibbonExtensibility

5. (C# solamente) Al final de la la clase Connect: declaración, agregue una coma y luego escriba el siguiente nombre
de interfaz.

C#

IRibbonExtensibility

6. (C# solamente) Haga clic derecho en la interfaz que acaba de agregar, haga clic en Implementar interfazy haga
clic en Implementar interfaz explícitamente. Esto agrega un trozo para el único miembro de la interfaz
IRibbonExtensibility : GetCustomUI.

7. Modificar el método GetCustomUI de modo que parece que el siguiente código.

VB

Public Function GetCustomUI(ByVal RibbonID As String) As String _


Implements Microsoft.Office.Core.IRibbonExtensibility.GetCustomUI
Return My.Resources.Ribbon
End Function

C#

string IRibbonExtensibility.GetCustomUI(string RibbonID)


{
Return Properties.Resources.Ribbon;

https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3… 27/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

PRECAUCIÓN

GetCustomUI deberían implementarse para devolver la cadena XML para la personalización de la cinta y no
debe usarse para la inicialización. En particular, usted no debe intentar Mostrar cuadros de diálogo ni ventanas
de mensaje en la implementación de GetCustomUI . El lugar más apropiado para hacer la inicialización es en el
método OnConnection (para compartir complementos) o en el método ThisAddIn_Startup (para los
complementos creados mediante el uso de Visual Studio 2005 Tools para Office segunda edición).

8. Agregue el siguiente método a la clase. Este método inserta el nombre de la empresa en el documento en la
ubicación actual del cursor.

VB

Public Sub InsertCompanyName(ByVal control As Office.IRibbonControl)


' Inserts the specified text at the current location
' in the document.
Dim companyName As String = "Microsoft Corporation"
applicationObject.Selection.InsertAfter(companyName)
End Sub

C#

public void InsertCompanyName(Office.IRibbonControl control)


{
// Inserts the specified text at the current location
// in the document.
string companyName = "Microsoft Corporation";
applicationObject.Selection.InsertAfter(companyName);
}

9. En el menú archivo , haga clic en Guardar todo.

10. Salir de Word 2007 si se está ejecutando.

11. En el menú crear , haga clic en Generar solución.

12. En el Explorador de soluciones, haga clic en InsertCompanyAddInSetupy haga clic en crear.

13. Haga InsertCompanyAddInSetupy, a continuación, haga clic en instalar.

Aparece el Asistente de configuración de InsertCompanyAddIn .

14. Haga clic en siguiente en cada una de las páginas y haga clic en cerrar en la última pantalla.

15. Inicie Word.

La ficha de Mi aparece a la derecha de las otras fichas.

16. Haga clic en Mi fichay haga clic en Insertar nombre de la empresa. Word inserta el nombre de la empresa en el
documento en la posición del cursor.

https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3… 28/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

17. Salir de Word.

18. En Visual Studio, en el Explorador de soluciones, haga clic en InsertCompanyAddInSetupy luego haga clic en
desinstalar.

Utilizando un Visual Studio 2005 Tools para Office segunda edición proyecto para modificar la
interfaz de usuario Fluent
Este ejemplo muestra cómo crear el mismo complemento como en el ejemplo anterior, pero esta vez mediante el uso de
herramientas de Visual Studio 2005 Tools para Office segunda edición.

Para crear el proyecto

1. Inicie Visual Studio 2005 Tools para Office segunda edición.

2. En el menú archivo , seleccione nuevoy haga clic en proyecto.

3. En el cuadro de diálogo Nuevo proyecto , seleccione Visual Basic o Visual C#.

4. En el panel Tipos de proyecto , expanda el nodo Office y seleccione 2007 Add-ins.

5. En el panel plantillas , seleccione complemento de Word.

6. Nombre el nuevo complemento InsertCompanyAddIn1y haga clic en Aceptar para crear el nuevo complemento.

Visual Studio crea una nueva solución que contiene dos proyectos: el complemento de sí mismo y un proyecto de
instalación. (El proyecto de instalación le permite instalar el add-in en equipos de otros usuarios, y que hace más fácil para
instalar y desinstalar el complemento en tiempo de diseño).

Tenga en cuenta que aunque el nuevo complemento de implementa la interfaz IExtensibility2 , que no ver todos los
trámites requeridos por esta interfaz. En cambio, Visual Studio 2005 Tools para Office segunda edición crea una clase
simple denominada ThisAddIny proporciona procedimientos que es probable que necesite. Puede agregar código al
método ThisAddIn_Startup o al método ThisAddin_Shutdown , según corresponda. Para este ejemplo, no necesita
código en cualquiera de los métodos. También no necesita modificar código o establecer referencias para crear el add-in,
todos los trabajos de conexión se ha hecho para usted.

Para agregar un elemento de extensibilidad de la cinta

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

2. En el cuadro de diálogo Agregar nuevo elemento , seleccione Cinta de apoyo.

3. Haga clic en Agregar para aceptar el nombre predeterminado (Ribbon1.vb o Ribbon1.cs).

La plantilla añade un archivo XML denominado Ribbon1.xmly una nueva clase al proyecto. El archivo XML
contiene una muy simple interfaz de usuario personalizada. El nuevo archivo Ribbon1 contiene una extensión
comentó fuera de la clase ThisAddIn y una clase nueva denominada Ribbon1.

4. En el Explorador de soluciones, haga doble clic en Ribbon1.xml para abrirlo en el editor XML.

5. Modificar el código XML existente, por lo que parece el siguiente marcado.

XML

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"
onLoad="onLoad">
<ribbon>
<tabs>
<tab id="CustomTab" label="My Tools Tab">
<group id="SampleGroup" label="Sample Group">
https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3… 29/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

<button id="Button" label="Insert Company Name"


size="large" onAction="InsertCompanyName" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>

6. Guarde el archivo XML y cerrar el editor de XML.

Es más fácil utilizar el archivo XML si es tratada como un recurso en el archivo de recursos del proyecto.

Para crear el recurso XML

1. En el menú proyecto , haga clic en Propiedades de InsertCompanyAddIn1.

2. Haga clic en la ficha recursos .

3. Desde el Explorador de soluciones, arrastre Ribbon1.xml a la superficie de diseño recursos .

Esta acción crea un nuevo recurso basado en el archivo que contiene el XML contenido. De ahora en adelante, el
archivo Ribbon1.xml se almacena automáticamente como un recurso de aplicación y puede recuperar este
contenido mediante características de lenguaje de Visual Basic o Visual C#.

4. Cierre la ventana de recursos . Cuando se le pida, haga clic en sí para guardar los recursos.

Para modificar el código de cinta y completar el add-in

1. En el Explorador de soluciones, haga clic derecho Ribbon1.vb o Ribbon1.csy haga clic en Ver código.

2. En el Editor de código, seleccione la clase parcial ThisAddIny quite el comentario de la clase parcial.

El procedimiento de RequestService permite el Visual Studio 2005 Tools para Office segunda Edition runtime
determinar qué clase debe manejar las devoluciones de llamada para la personalización de la cinta del add-in. Si
este procedimiento se pasa un GUID corresponde a la interfaz IRibbonExtensibility , devuelve su instancia
IRibbonUI , si lo tiene. Si no, pasa el control al método RequestService de su clase base.

Note Nota

De forma predeterminada, el método RequestService aparece en un comentario porque complemento ya


podría incluir una invalidación de este método (tal vez por la interfaz de FormRegionStartup , o una de las
otras nuevas interfaces de extensibilidad). Si es el caso, puede copiar el bloque si el código comentado en el
existente aumento al presupuesto para este método.

3. En la clase Ribbon1 , modificar el procedimiento GetCustomUI para que devuelve el XML desde el recurso
Ribbon1, en lugar de llamar a procedimiento del add-in GetResourceText .

VB

Return My.Resources.Ribbon1

C#

https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3… 30/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

return Properties.Resources.Ribbon1;

Note Nota

La plantilla incluye, dentro de la región oculta de ayudantes , un procedimiento llamado GetResourceText que
recupera el contenido del archivo XML para usted. Aunque este procedimiento hace el trabajo que necesita,
requiere especificar el nombre del recurso como una cadena. Esta técnica es algo frágil (cambios en el nombre
del recurso permitiría todavía el código a compilar, pero complemento fallaría en tiempo de ejecución), así que
es mejor agregar el XML contenido en el archivo de recursos y la utilización el lenguaje específico apoyo para
recuperar recursos , como se muestra en estos pasos. La plantilla incluye el procedimiento GetResourceText
para que puedan trabajar "fuera de la caja", al crear y construir un add-in, usted tiene un trabajo de
personalización de la cinta sin ningún cambio.

4. En la clase Ribbon1 , agregue una declaración pública para una variable que puede referirse al objeto de
aplicación de la palabra.

VB

Public Application As Word.Application

C#

public Word.Application Application;

5. En el mismo archivo, en la clase parcial ThisAddIn, inmediatamente debajo de la línea de código que crea la
instancia de la clase Ribbon1 , agregue código que establece la propiedad Application de la clase Ribbon1.

VB

' In the RequestService method:


ribbon.Application = Application

C#

// In the RequestService method:


ribbon.Application = Application;

6. Agregue el procedimiento siguiente a la clase Ribbon1 , para que pueda manejar la devolución de llamada
onAction del botón nuevo en la cinta de opciones y coloque el nombre de la empresa en la posición del cursor en
el documento.

VB

Public Sub InsertCompanyName(ByVal control As IRibbonControl)


' Inserts the specified text at the current location
' in the document.
Dim companyName As String = "Microsoft Corporation"

https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3… 31/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

Application.Selection.InsertAfter(companyName)
End Sub

C#

public void InsertCompanyName(IRibbonControl control)


{
// Inserts the specified text at the current location
// in the document.
string companyName = "Microsoft Corporation";
Application.Selection.InsertAfter(companyName);
}

Para poner a prueba el add-in

1. En el menú archivo , haga clic en Guardar todo.

2. Presione F5 para ejecutar el proyecto, que también se inicia Word 2007.

3. Haga clic en la ficha de mis herramientas y haga clic en Botón grande.

El código inserta el nombre de la empresa en la posición del cursor en el documento.

4. Salir de Word 2007.

Puede construir el proyecto de instalación e instalar el add-in, al igual que en el ejemplo anterior. En este caso, Visual
Studio 2005 Tools para Office segunda edición hace más fácil de ejecutar (y depurar) Complementos presione F5, y el
proyecto funciona como podría esperar. Usted puede obtener el mismo comportamiento con la plantilla de complemento
compartido, solo tienes que configurar las propiedades del proyecto que indican que la aplicación que desea ejecutar al
pulsar F5 y seleccione la aplicación correcta de la oficina. Puede encontrar instructivo para depurar el add-in y añadir un
punto de interrupción en el código.

Trabajar con complementos barra de comandos existentes


Al crear complementos COM, generalmente necesita una manera para que los usuarios interactúen con el add-in. En
versiones anteriores de Office, se logra esto mediante la adición de un elemento o barra de herramientas del botón a la
aplicación utilizando el modelo de objetos de comando barras. En la versión 2007 de Office, aplicaciones personalizadas
continúan trabajando en la interfaz de usuario fluida sin modificación en la mayoría de los casos. Sin embargo, cambios
que se realizan con las barras de comando modelo de objetos, o con cualquier otra tecnología que modifica los menús o
barras de herramientas, como WordBasic o XLM, aparecen en una ficha independiente de Add-Ins . Esto ayuda a los
usuarios localizar los controles que necesitan trabajar con y los complementos que utilizaban previamente.

Figura 5. Un botón de barra de herramientas personalizada a la ficha complementos en Excel 2007

The Add-Ins tab in Excel 2007


Para realizar cambios en los elementos de la interfaz de usuario fluida, puede utilizar las técnicas y el código ya descrito.
Para complementos existentes que cambian la estructura del menú, los comandos aparecen en la ficha Complementos .
Para obtener información acerca de cómo actualizar complementos existentes, vea el artículo técnico migrar un Shared
Add-in a un Visual Studio 2005 Tools para la Oficina sistema SE Add-in .

Actualización dinámica de la interfaz de usuario Fluent


https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3… 32/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

Devoluciones de llamada que devolución propiedades de un control (como devolución de llamada del control de la
Galería getItemCount ) normalmente llamadas sólo como inicializa la interfaz de usuario fluida, a menos que usted
explícitamente la fuerza el control para volver a inicializar. Puede forzar que esto sucediera por almacenar una referencia a
la cinta de opciones en el código y luego llamar a métodos de la cinta que invalidan un control individual o la cinta entera.
Para ello, debe agregar el atributo onLoad , especificando un procedimiento de devolución de llamada, en el elemento <
customUI > . El callback onLoad es llamado una vez, cuando se carga correctamente el archivo de marcado de
extensibilidad de la cinta. El procedimiento de devolución de llamada recibe un objeto IRibbonUI como parámetro, el
código puede almacenar en caché esta referencia para su uso posterior. La clase IRibbonUI proporciona métodos que
permiten invalidar un control único o la cinta entera.

Para almacenar en caché el objeto IRibbonUI así que usted puede actualizar sus controles en tiempo de ejecución, puede
agregar código como este:

XML

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

En el código (código VBA dentro de un documento, o tal vez el código de Visual Basic o código C# en un add-in), añadir
un procedimiento como el siguiente código.

C#

IRibbonUI myRibbon;

public void ribbonLoaded(IRibbonUI ribbon)


{
myRibbon = ribbon;
}

La interfaz IRibbonUI expone los métodos siguientes.

Tabla 4. Métodos de la interfaz IRibbonUI

Método Acción Descripción

Invalidate() devolución de Hace que todos sus controles para volver a


llamada inicializar.

InvalidateControl (string devolución de Hace un control especial volver a inicializar.


controlID) llamada

Cargando imágenes
El < customUI > atributo del elemento loadImage permite especificar una devolución de llamada que puede cargar
todas las imágenes. Después de configurar este procedimiento de devolución de llamada, llama al procedimiento de
devolución de llamada y pasa la cadena del atributo de imagen para cada control que carga imágenes. No necesita
implementar la devolución de llamada de ejemplo varias veces, como una vez para cada control que requiere imágenes.
Por ejemplo, una personalización puede incluir marcas como la siguiente.

XML

https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3… 33/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"
loadImage="GetImage">
<!-- Later in the markup -->
<button id="myButton" image="mypic.jpg" />

Para proporcionar la imagen del botón, oficina llama a la función de ejemplo . Pasa el parámetro "mypic.jpg" y espera a
cambio un objeto IPictureDisp . Mediante el uso de esta técnica, puede escribir un procedimiento de devolución de
llamada solo que devuelve todas las imágenes de sus necesidades de personalización, sin tener que escribir la devolución
de llamada de ejemplo de cada control individual. Tenga en cuenta que la devolución de llamada loadImage no se llama
de nuevo al llamar a Invalidate método o método InvalidateControl la cinta. Para los controles que hay que cambiar
imágenes dinámicamente en tiempo de ejecución, utilice la devolución de llamada de ejemplo .

Por ejemplo, puede utilizar el código del ejemplo siguiente para ofrecer imágenes de la personalización. El método de
devolución de llamada de ejemplo debe devolver un stdole . IPictureDisp tipo, lo que generalmente necesitas convertir
tus imágenes a este tipo. Para realizar estas conversiones, puede utilizar la siguiente clase PictureConverter , que hereda
de la clase de AxHost .

VB

Friend Class PictureConverter


Inherits AxHost

Private Sub New()


MyBase.New(String.Empty)
End Sub

Public Shared Function ImageToPictureDisp( _


ByVal image As Image) As stdole.IPictureDisp
Return CType(GetIPictureDispFromPicture(image), _
stdole.IPictureDisp)
End Function

Public Shared Function IconToPictureDisp( _


ByVal icon As Icon) As stdole.IPictureDisp
Return ImageToPictureDisp(icon.ToBitmap())
End Function

Public Shared Function PictureDispToImage( _


ByVal picture As stdole.IPictureDisp) As Image
Return GetPictureFromIPicture(picture)
End Function
End Class

Entonces, el procedimiento de devolución de llamada sea algo como esto, asumiendo que había añadido un icono para
sus recursos de proyecto llamados MyIcon.

VB

Public Function GetImage( _


ByVal imageName As String) As stdole.IPictureDisp
Return PictureConverter.IconToPictureDisp(My.Resources.MyIcon)
End Function

Note Nota

https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3… 34/35
7/2/2018 Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

Tu proyecto debe tener una referencia que se establece en la Asamblea stdole para ejecutar este código. Esta
referencia está incluida automáticamente en proyectos creados mediante el uso de Visual Studio 2005 Tools para
Office segunda edición.

Conclusión
Personalización de la interfaz de usuario en versiones anteriores de Office significó crear complementos COM o DLL
archivos para cada aplicación que comparte el add-in. Por el contrario, la función de cinta utiliza formato XML basado en
texto, declarativo que simplifica la creación y personalización de la cinta. Con unas pocas líneas de XML, puede crear sólo
la interfaz adecuada para el usuario. Ya que el formato XML está contenido en un solo archivo, modificar la interfaz como
requerimientos de cambio es mucho más simple. También puede mejorar la productividad del usuario al poner los
comandos donde los usuarios pueden encontrar más fácilmente. La cinta añade consistencia a través de aplicaciones, que
reduce el tiempo de los usuarios dedican cada aplicación de aprendizaje.

Recursos adicionales
A aprender más sobre los productos y tecnologías mencionados en este artículo, consulte estos recursos:

Desarrollo de Office con Visual Studio Developer Portal

Portal de desarrolladores de interfaz de usuario Fluent de oficina

Documentación: Visual Studio Tools para Office

Foro: Visual Studio Tools para Office

Información sobre el diseño de Office XP Office 2003 Add-ins utilizando el .NET Framework y complementos

Cómo construir una oficina COM Add-in mediante Visual Basic .NET

Cómo crear COM complementos de Office mediante VBA y Office Developer

© 2018 Microsoft

https://www.microsofttranslator.com/bv.aspx?from=&to=es&a=https%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Faa338202(d%3… 35/35

Vous aimerez peut-être aussi