Compartir a través de


Programar complementos de VSTO

Al ampliar una aplicación de Microsoft Office mediante la creación de un complemento VSTO, se escribe código directamente contra la clase ThisAddIn en su proyecto. Puede usar esta clase para realizar tareas como acceder al modelo de objetos de la aplicación host de Microsoft Office, personalizar la interfaz de usuario (UI) de la aplicación y exponer objetos en el complemento de VSTO a otras soluciones de Office.

Se aplica a: La información de este tema se aplica a los proyectos de complemento de VSTO. Para obtener más información, vea Características disponibles por aplicación de Office y tipo de proyecto.

Algunos aspectos de la escritura de código en proyectos de complemento de VSTO son diferentes de otros tipos de proyectos en Visual Studio. Muchas de estas diferencias se deben a la forma en que los modelos de objetos de Office se exponen al código administrado. Para obtener más información, vea Escribir código en soluciones de Office.

Para obtener información general sobre los complementos de VSTO y otros tipos de soluciones que puede crear mediante las herramientas de desarrollo de Office en Visual Studio, consulte Información general sobre el desarrollo de soluciones de Office (VSTO).

Usar la clase ThisAddIn

Puede empezar a escribir el código de complemento de VSTO en la ThisAddIn clase . Visual Studio genera automáticamente esta clase en el archivo de código ThisAddIn.vb (en Visual Basic) o ThisAddIn.cs (en C#) del proyecto de complemento de VSTO. El entorno de ejecución de Visual Studio Tools para Office crea automáticamente una instancia de esta clase cuando la aplicación de Microsoft Office carga el complemento VSTO.

Hay dos controladores de eventos predeterminados en la ThisAddIn clase . Para ejecutar código cuando se carga el complemento VSTO, agregue código al controlador de ThisAddIn_Startup eventos. Para ejecutar código justo antes de que el complemento VSTO se descargue, agregue código al controlador del evento ThisAddIn_Shutdown. Para obtener más información sobre estos controladores de eventos, vea Eventos en proyectos de Office.

Nota:

En Outlook, el controlador de eventos ThisAddIn_Shutdown no siempre se llama de forma predeterminada cuando se descarga el complemento VSTO. Para obtener más información, vea Eventos en proyectos de Office.

Acceso al modelo de objetos de la aplicación host

Para acceder al modelo de objetos de la aplicación host, use el Application campo de la ThisAddIn clase . Este campo devuelve un objeto que representa la instancia actual de la aplicación host. En la tabla siguiente se muestra el tipo del valor devuelto para el Application campo en cada proyecto de complemento de VSTO.

Aplicación anfitrión Tipo de valor devuelto
Microsoft Office Excel Application
Microsoft Office InfoPath Application
Microsoft Office Outlook Application
Microsoft Office PowerPoint Aplicación
Microsoft Office Project Microsoft.Office.Interop.MSProject.Application
Microsoft Office Visio Microsoft.Office.Interop.Visio.Application
Microsoft Office Word Application

En el siguiente ejemplo de código se muestra cómo usar el campo Application para crear un nuevo libro en un complemento de VSTO para Microsoft Office Excel. Este ejemplo está pensado para ejecutarse desde la ThisAddIn clase .

Excel.Workbook newWorkbook = this.Application.Workbooks.Add(System.Type.Missing);

Para hacer lo mismo desde fuera de la ThisAddIn clase , use el Globals objeto para tener acceso a la ThisAddIn clase . Para obtener más información sobre el Globals objeto, vea Acceso global a objetos en proyectos de Office.

Excel.Workbook newWorkbook = Globals.ThisAddIn.Application.Workbooks.Add(System.Type.Missing);

Para obtener más información sobre los modelos de objetos de aplicaciones específicas de Microsoft Office, consulte los temas siguientes:

Acceso a un documento cuando se inicia la aplicación de Office

No todas las aplicaciones de Office 2010 abren automáticamente un documento al iniciarlos y ninguna de las aplicaciones de Office 2013 abre un documento al iniciarlos. Por lo tanto, no agregue código en el ThisAdd-In_Startup controlador de eventos si el código requiere que un documento esté abierto. En su lugar, agregue ese código a un evento que la aplicación de Office genera cuando un usuario crea o abre un documento. De este modo, puede garantizar que un documento está abierto antes de que el código realice operaciones en él.

El ejemplo de código siguiente funciona con un documento en Word solo cuando el usuario crea un documento o abre un documento existente.

    private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        this.Application.DocumentOpen +=
new Word.ApplicationEvents4_DocumentOpenEventHandler(WorkWithDocument);

        ((Word.ApplicationEvents4_Event)this.Application).NewDocument +=
            new Word.ApplicationEvents4_NewDocumentEventHandler(WorkWithDocument);  
    }
    
    private void WorkWithDocument(Microsoft.Office.Interop.Word.Document Doc)
    {
        try
        {
            Word.Range rng = Doc.Range(0, 0);
            rng.Text = "New Text";
            rng.Select();
        }
        catch (Exception ex)
        {
            // Handle exception if for some reason the document is not available.
        }
    }

Miembros ThisAddIn que se usarán para otras tareas

En la tabla siguiente se describen otras tareas comunes y se muestran los miembros de la ThisAddIn clase que puede usar para realizar las tareas.

Tarea Miembro a utilizar
Ejecute el código para inicializar el complemento VSTO cuando se cargue el complemento de VSTO. Agregue código al ThisAddIn_Startup método . Este es el controlador de eventos predeterminado para el Startup evento. Para obtener más información, vea Eventos en proyectos de Office.
Ejecute código para limpiar los recursos utilizados por el complemento VSTO antes de que se descargue el complemento VSTO. Agregue código al ThisAddIn_Shutdown método . Este es el controlador de eventos predeterminado para el Shutdown evento. Para obtener más información, vea Eventos en proyectos de Office. Nota: En Outlook, de forma predeterminada, ThisAddIn_Shutdown no siempre se llama al controlador de eventos cuando se descarga el complemento VSTO. Para obtener más información, vea Eventos en proyectos de Office.
Mostrar un panel de tareas personalizado. Use el CustomTaskPanes campo . Para obtener más información, consulte Paneles de tareas personalizados.
Exponga objetos en su Complemento VSTO a otras soluciones de Microsoft Office. Invalide el RequestComAddInAutomationService método . Para obtener más información, vea Llamar al código en complementos de VSTO desde otras soluciones de Office.
Personalice una característica en el sistema de Microsoft Office mediante la implementación de una interfaz de extensibilidad. Invalide el RequestService método para devolver una instancia de una clase que implementa la interfaz . Para obtener más información, consulte Personalización de las características de la interfaz de usuario mediante interfaces de extensibilidad. Nota: Para personalizar la interfaz de usuario de la cinta de opciones, también puede invalidar el CreateRibbonExtensibilityObject método .

Descripción del diseño de la clase ThisAddIn

En los proyectos que tienen como destino .NET Framework 4, AddIn es una interfaz. La ThisAddIn clase deriva de la AddInBase clase . Esta clase base redirige todas las llamadas a sus miembros a una implementación interna de la AddIn interfaz en el entorno de ejecución de Visual Studio Tools para Office.

En los proyectos de complementos de VSTO para Outlook, la ThisAddIn clase deriva de la Microsoft.Office.Tools.Outlook.OutlookAddIn clase en proyectos que tienen como destino .NET Framework 3.5 y de OutlookAddInBase en proyectos que tienen como destino .NET Framework 4. Estas clases base proporcionan alguna funcionalidad adicional para admitir áreas de formulario. Para obtener más información sobre las áreas del formulario, vea Crear áreas de formulario de Outlook.

Personalizar la interfaz de usuario de las aplicaciones de Microsoft Office

Puede personalizar mediante programación la interfaz de usuario de las aplicaciones de Microsoft Office mediante un complemento de VSTO. Por ejemplo, puede personalizar la cinta de opciones, mostrar un panel de tareas personalizado o crear un área de formulario personalizada en Outlook. Para obtener más información, vea Personalización de la interfaz de usuario de Office.

Visual Studio proporciona diseñadores y clases que puede usar para crear paneles de tareas personalizados, personalizaciones de cinta de opciones y áreas de formulario de Outlook. Estos diseñadores y clases ayudan a simplificar el proceso de personalización de estas características. Para obtener más información, vea Paneles de tareas personalizados, Diseñador de cinta de opciones y Crear áreas de formulario de Outlook.

Si desea personalizar una de estas características de forma que no sea compatible con las clases y diseñadores, también puede personalizar estas características implementando una interfaz de extensibilidad en el complemento de VSTO. Para obtener más información, consulte Personalización de las características de la interfaz de usuario mediante interfaces de extensibilidad.

Además, puede modificar la interfaz de usuario de los documentos de Word y los libros de Excel mediante la generación de elementos host que amplían el comportamiento de los documentos y libros. Esto le permite agregar controles administrados a documentos y hojas de cálculo. Para obtener más información, consulte Extender documentos de Word y libros de trabajo de Excel en complementos de VSTO en tiempo de ejecución.

Llamar al código en los complementos de VSTO desde otras soluciones

Puede exponer objetos en el complemento de VSTO a otras soluciones, incluidas otras soluciones de Office. Esto resulta útil si el complemento de VSTO proporciona un servicio que desea permitir que usen otras soluciones. Por ejemplo, si tiene un complemento VSTO para Microsoft Office Excel que realiza cálculos sobre datos financieros de un servicio web, otras soluciones pueden realizar estos cálculos llamando al complemento VSTO de Excel en tiempo de ejecución.

Para obtener más información, vea Llamar al código en complementos de VSTO desde otras soluciones de Office.