Personalizar la cinta de opciones de Office Fluent con un complemento COM administrado

El componente de la cinta de opciones de la interfaz de usuario de Microsoft Office Fluent en conjuntos de aplicaciones de Microsoft Office ofrece a los usuarios una manera flexible de trabajar con aplicaciones de Office. La extensibilidad de la cinta de opciones (RibbonX) usa formato XML sencillo basado en texto para crear y personalizar la cinta de opciones.

el ejemplo de código en este tema muestra cómo personalizar la cinta de opciones en una aplicación de Office, independientemente de qué documento esté abierto. En los siguientes pasos, se crean personalizaciones a nivel de la aplicación mediante un complemento COM administrador y se crea el complemento en Microsoft Visual Studio 2012 mediante Microsoft Visual C#. El proyecto agrega una pestaña personalizada, un grupo personalizado y un botón personalizado a la cinta de opciones. Para completar el procedimiento, se realizan las siguientes tareas.

  1. Crear el archivo de personalización XML.

  2. Crear un proyecto de complemento COM administrado en Microsoft Visual Studio 2012 con C#.

  3. Agregar el archivo de personalización XML al proyecto como recurso incrustado.

  4. Implementar la interfaz IRibbonExtensibility.

  5. Cree un método de devolución de llamada que se desencadene cuando se elige el botón.

  6. Compilar, instalar y probar el proyecto.

Creación del archivo de personalización XML

En este paso, se crea el archivo que agrega los componentes personalizados a la cinta de opciones.

  1. En un editor de texto, agregue el siguiente formato 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> 
    
  2. Cierre y guarde el archivo como customUI.xml.

Creación de un proyecto de complemento COM administrado

En este paso, se crea un proyecto C# de complemento COM en Microsoft Visual Studio 2012.

  1. Inicie Microsoft Visual Studio 2012.

  2. En el menú Archivo, elija Nuevo proyecto.

  3. En el cuadro de diálogo Nuevo proyecto , en Tipos de proyecto, expanda Otros proyectos, elija Proyectos de extensibilidad y, a continuación, haga doble clic en Agregar compartido.

  4. Agregue un nombre para el proyecto; para esta muestra, escriba RibbonXSampleCS.

  5. En la primera pantalla del Asistente para complementos compartidos, elija Siguiente.

  6. Seleccione Crear un complemento con Visual C# y, a continuación, elija Siguiente.

  7. Borre todas las selecciones excepto Microsoft Word y, a continuación, elija Siguiente.

  8. Escriba un nombre y una descripción para el complemento y, a continuación, elija Siguiente.

  9. En la pantalla Elegir opciones de complemento , seleccione Me gustaría que mi complemento se cargara cuando se cargue la aplicación host y, a continuación, elija Siguiente.

  10. Elija Finalizar para completar el asistente.

Adición de referencias externas al proyecto

En este paso, se agregan referencias a los ensamblados de interoperabilidad primaria de Word y a la biblioteca de tipos.

  1. En el Explorador de soluciones, haga clic con el botón derecho en Referencias y, a continuación, elija Agregar referencia.

    Nota:

    Si no ve la carpeta Referencias , elija el menú Proyecto y, a continuación, elija Mostrar todos los archivos.

  2. Desplácese hacia abajo en la pestaña .NET, presione la tecla CTRL y seleccione Microsoft.Office.Interop.Word.

  3. En la pestaña COM , desplácese hacia abajo, seleccione la Biblioteca de objetos de Microsoft Office 15.0 (o la biblioteca adecuada para su versión de Office) y, a continuación, elija Aceptar.

  4. Agregue las siguientes referencias de espacio de nombres al proyecto, si aún no existen, justo debajo de la línea de espacio de nombres .

     using System.Reflection; 
     using Microsoft.Office.Core; 
     using System.IO; 
     using System.Xml; 
     using Extensibility; 
     using System.Runtime.InteropServices; 
     using MSword = Microsoft.Office.Interop.Word; 
    

Agregar el archivo de personalización XML como un recurso incrustado

En este paso, se agrega el archivo de personalización XML como recurso incrustado al proyecto.

  1. En el Explorador de soluciones, haga clic con el botón derecho en RibbonXSampleCS, seleccione Agregar y elija Elemento existente.

  2. Vaya al archivo customUI.xml que creó, seleccione el archivo y, a continuación, elija Agregar.

  3. En el Explorador de soluciones, haga clic con el botón secundario en customUI.xml y, a continuación, seleccione Propiedades.

  4. En el ventana Propiedades, seleccione Acción de compilación y desplácese hacia abajo hasta Recurso incrustado.

Implementar la interfaz IRibbonExtensibility

En este paso, se agrega código a Extensibility.IDTExtensibility2::OnConnection para crear una referencia a la aplicación Word en tiempo de ejecución. También se implemente el único miembro de la interfaz IRibbonExtensibility, GetCustomUI.

  1. En el Explorador de soluciones, haga clic con el botón derecho en Connect.cs y, a continuación, elija Ver código.

  2. Después del método Connect, agregue la siguiente declaración, que crea una referencia al objeto Word Apllication:

    private MSword.Application applicationObject;

  3. Agregue la siguiente línea al método OnConnection. Esta instrucción crea una instancia del objeto Word Application:

    applicationObject =(MSword.Application)application;

  4. Al final de la instrucción Connect de clase pública, agregue una coma y escriba IRibbonExtensibility.

    Nota:

    Use Microsoft IntelliSense para insertar métodos de interfaz automáticamente. Por ejemplo, al final de la instrucción Connect de clase pública, escriba IRibbonExtensibility, haga clic con el botón derecho y seleccione Implementar interfaz y, a continuación, elija Implementar interfaz explícitamente. Esto agrega un código auxiliar para el método GetCustomUI. La implementación tiene un aspecto similar al del siguiente código.

       string IRibbonExtensibility.GetCustomUI(string RibbonID) 
     { 
     }
    
  5. Inserte la instrucción siguiente en el método GetCustomUI y sobrescriba el código existente: return GetResource("customUI.xml");

  6. Inserte el siguiente método debajo del método GetCustomUI :

     private string GetResource(string resourceName) 
           { 
               Assembly asm = Assembly.GetExecutingAssembly(); 
               foreach (string name in asm.GetManifestResourceNames()) 
               { 
                   if (name.EndsWith(resourceName)) 
                   { 
                       System.IO.TextReader tr = new System.IO.StreamReader(asm.GetManifestResourceStream(name)); 
                       //Debug.Assert(tr != null); 
                       string resource = tr.ReadToEnd(); 
    
                       tr.Close(); 
                       return resource; 
                   } 
               } 
               return null; 
           } 
    
    

    El método GetCustomUI llama al método GetResource. El método GetResource establece una referencia a su ensamblado durante el tiempo de ejecución y, a continuación, recorre el recurso incrustado hasta que encuentra el denominado customUI.xml. Después crea una instancia del objeto StreamReader que lee el archivo incrustado que contiene el formato XML. El procedimiento transfiere el XML al método GetCustomUI, que devuelve el XML a la cinta de opciones. De manera alternativa, se puede construir una cadena que contenga el formato XML y leerla directamente en el método GetCustomUI.

  7. Tras el método GetResource, agregue este método. Este método inserta el nombre de la empresa en el documento al comienzo de la página.

     public void InsertCompanyName(IRibbonControl control) 
           { 
           // Inserts the specified text at the beginning of a range or selection. 
               string MyText; 
               MyText = "Microsoft Corporation"; 
    
               MSword.Document doc = applicationObject.ActiveDocument; 
    
               //Inserts text at the beginning of the active document. 
               object startPosition = 0; 
               object endPosition = 0; 
               MSword.Range r = (MSword.Range)doc.Range( 
                     ref startPosition, ref endPosition); 
               r.InsertAfter(MyText); 
           } 
    
    

Compilación e instalación del proyecto

En este paso, se compila el complemento y su proyecto de instalación. Antes de continuar, asegúrese de que Word está cerrado.

  1. En el menú Proyecto , elija Compilar solución. Cuando la generación finalice, aparecerá una notificación en la esquina inferior izquierda de la ventana.

  2. En el Explorador de soluciones, haga clic con el botón derecho en RibbonXSampleCSSetup y, a continuación, elija Compilar.

  3. Haga clic con el botón derecho en RibbonXSampleCSSetup de nuevo y elija Instalar para comenzar el Asistente para la instalación de RibbonXSampleCSSetup.

  4. Elija Siguiente en cada una de las pantallas y, a continuación, elija Cerrar en la pantalla final.

  5. Inicie Word. Debe ver la pestaña Mi pestaña a la derecha de las demás pestañas.

Probar el proyecto

Elija la pestaña Mi pestaña y, a continuación, elija Insertar nombre de empresa para insertar el nombre de la empresa en el documento en el cursor. Si no ve la cinta personalizada, es posible que tenga que agregar una entrada al Registro de Windows completando los pasos siguientes.

Precaución

[!PRECAUCIóN] Los siguientes pasos contienen información sobre cómo modificar el registro. Antes de modificarlo, asegúrese de hacer una copia de seguridad del mismo y asegúrese de comprender cómo restaurarlo si hay un problema. Para obtener más información sobre cómo realizar copias de seguridad, restaurar y editar el Registro, consulte este artículo de Microsoft Knowledge Base: Información del Registro de Windows para usuarios avanzados (256986).

  1. En el Explorador de soluciones, haga clic con el botón derecho en el proyecto de instalación, RibbonXSampleCSSetup, seleccione Ver y, a continuación, elija Registro.

  2. En la pestaña Registro, vaya a la siguiente clave de registro para el complemento: HKCU\Software\Microsoft\Office\Word\AddIns\RibbonXSampleCS.Connect

    Nota:

    [!NOTA] Si la clave RibbonXSampleCS.Connect no existe, se puede crear. Para ello, haga clic con el botón derecho en la carpeta Addins , seleccione Nuevo y, a continuación, elija Clave. Asigne el nombre RibbonXSampleCS.Connect a la clave. Agregue un DWord LoadBehavior y establezca su valor en 3.

Vea también

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.