Programas de complementos VSTO

Cuando se amplía una aplicación de Microsoft Office mediante la creación de un complemento VSTO, el código se escribe directamente en la clase ThisAddIn de su proyecto. Puede usar esta clase para realizar tareas tales como tener acceso 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 del complemento VSTO en 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, consulte Características disponibles por aplicación de Office lication y tipo de proyecto.

Algunos aspectos de la escritura de código en proyectos de complementos VSTO difieren de otros tipos de proyectos de 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 del complemento VSTO en la clase ThisAddIn . Visual Studio genera automáticamente esta clase en el archivo de código ThisAddIn.vb (en Visual Basic) o ThisAddIn.cs (en C#) en el proyecto de complemento de VSTO. El Visual Studio Tools para Office runtime crea automáticamente una instancia de esta clase cuando microsoft aplicación de Office lication carga el complemento vsTO.

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

Nota:

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

Acceso al modelo de objetos de la aplicación host

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

Aplicación host 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 ejemplo de código siguiente se muestra cómo usar el Application campo para crear un nuevo libro en un complemento de VSTO para Microsoft Office Excel. Este ejemplo está pensado para ejecutarse desde la clase ThisAddIn .

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

Para hacer lo mismo desde fuera de la clase ThisAddIn , use el objeto Globals para tener acceso a la clase ThisAddIn . 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 acerca de los modelos de objetos de aplicaciones de Microsoft Office concretas, vea los temas siguientes:

Obtener acceso a un documento cuando se inicia la aplicación de Office lication

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 sea generado por la aplicación de Office cuando un usuario cree o abra un documento. De este modo, puede garantizar que haya un documento abierto para que el código realice operaciones en él.

El siguiente ejemplo de código funciona con un documento de Word sólo 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

La tabla siguiente se describen otras tareas habituales y muestra los miembros de la clase ThisAddIn que puede utilizar para realizar las tareas.

Tarea Miembro para usar
Ejecute el código para inicializar el complemento VSTO cuando este se cargue. Agregue código al método ThisAddIn_Startup . Este es el controlador de eventos predeterminado para el evento Startup . Para obtener más información, vea Eventos en proyectos de Office.
Ejecute el código para limpiar los recursos usados por el complemento VSTO antes de que este se descargue. Agregue código al método ThisAddIn_Shutdown . Este es el controlador de eventos predeterminado para el evento Shutdown . 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. Utilice el campo CustomTaskPanes . Para obtener más información, consulte Paneles de tareas personalizados.
Exponer objetos de un complemento VSTO en otras soluciones de Microsoft Office. Invalide el método RequestComAddInAutomationService . Para obtener más información, vea Llamar al código en complementos de VSTO desde otras soluciones de Office.
Personalizar una característica del sistema Microsoft Office implementando una interfaz de extensibilidad. Invalide el método RequestService para que devuelva una instancia de una clase que implemente 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 clase ThisAddIn se deriva de la clase AddInBase . 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 funciones adicionales para admitir las á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 Microsoft aplicación de Office lications

Puede personalizar mediante programación la interfaz de usuario de las aplicaciones de Microsoft Office mediante un complemento 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 utilizar para crear paneles de tareas personalizados, personalizaciones de la 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 los diseñadores, puede personalizarlas mediante la implementación de una interfaz de extensibilidad en el complemento 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 libros de Excel generando elementos host que extienden el comportamiento de documentos y libros. Esto le permite agregar controles administrados a documentos y hojas de cálculo. Para obtener más información, vea Extender documentos de Word y libros de Excel en complementos de VSTO en tiempo de ejecución.

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

Puede exponer los objetos de su complemento VSTO en otras soluciones (incluidas otras soluciones de Microsoft Office). Esto resulta útil si su complemento VSTO proporciona un servicio que quiera habilitar para que lo 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.