Compartir a través de


Programar complementos de nivel de aplicación

Cuando se extiende una aplicación de Microsoft Office mediante la creación de un complemento de nivel de aplicación, se escribe código directamente en la clase ThisAddIn del proyecto.Puede utilizar esta clase para realizar tareas como tener acceso al modelo de objetos de la aplicación host de Microsoft Office, personalizar la interfaz de usuario de la aplicación y exponer objetos del complemento a otras soluciones de Office.

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

Algunos aspectos a la hora de escribir código en proyectos de complemento son diferentes con respecto a otros tipos de proyectos en Visual Studio.Muchas de estas diferencias se deben a la manera en que se exponen los modelos de objetos de Office en el 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 nivel de aplicación y otros tipos de soluciones que se pueden crear mediante las herramientas de desarrollo de Office en Visual Studio, vea Información general sobre el desarrollo de soluciones de Office.

Utilizar la clase ThisAddIn

Puede empezar a escribir el código del complemento 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#) del proyecto de complemento.El Runtime de Microsoft Visual Studio Tools para Office crea automáticamente instancias de esta clase cuando la aplicación de Microsoft Office carga el complemento.

La clase ThisAddIn incluye dos controladores de eventos predeterminados.Para ejecutar el código cuando se cargue el complemento, agregue código al controlador del evento ThisAddIn_Startup.Para ejecutar el código justo antes de que se descargue el complemento, agregue código al controlador del evento ThisAddIn_Shutdown.Para obtener información sobre estos controladores de eventos, vea Eventos de los proyectos de Office.

[!NOTA]

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

Bb157876.collapse_all(es-es,VS.110).gifTener acceso al modelo de objetos de la aplicación host

Para tener 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.En la tabla siguiente se muestra el tipo de valor devuelto para el campo Application en cada proyecto de complemento.

Aplicación host

Tipo de valor devuelto

Microsoft Office Excel

Microsoft.Office.Interop.Excel.Application

Microsoft Office InfoPath

Microsoft.Office.Interop.InfoPath.Application

Microsoft Office Outlook

Microsoft.Office.Interop.Outlook.Application

Microsoft Office PowerPoint

Microsoft.Office.Interop.PowerPoint.Application

Microsoft Office Project

Microsoft.Office.Interop.MSProject.Application

Microsoft Office Visio

Microsoft.Office.Interop.Visio.Application

Microsoft Office Word

Microsoft.Office.Interop.Word.Application

El ejemplo de código siguiente muestra cómo utilizar el campo Application para crear un nuevo libro en un complemento para Microsoft Office Excel.Este ejemplo está diseñado para su ejecución desde la clase ThisAddIn.

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

Para lograr el mismo resultado desde fuera de la clase ThisAddIn, utilice el objeto Globals para obtener acceso a la clase ThisAddIn.Para obtener más información acerca del objeto Globals, vea Acceso global a objetos en los proyectos de Office.

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

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

Bb157876.collapse_all(es-es,VS.110).gifTener acceso a un documento Cuando se inicia la aplicación de Office

No todas las aplicaciones Office 2010 automáticamente abra un documento cuando se inicia, y ninguna de las aplicaciones Office 2013 abra un documento cuando se inicia.Por consiguiente, no incluya el código del controlador de eventos ThisAdd-In_Startup si el código requiere un documento abrir.En su lugar, agregue este código a un evento que la aplicación de Office active cuando un usuario crea o abre un documento.De ese modo, puede garantizar que un documento abierto antes de que el código realice operaciones en él.

El ejemplo de código siguiente ejecuta un documento de Word sólo cuando el usuario crea un documento o abra un documento existente.

Private Sub ThisAddIn_Startup() Handles Me.Startup

    AddHandler Application.NewDocument, AddressOf WorkWithDocument

End Sub

Private Sub WorkWithDocument(ByVal Doc As Microsoft.Office.Interop.Word.Document) _
    Handles Application.DocumentOpen

    Dim rng As Word.Range = Doc.Range(Start:=0, End:=0)
    rng.Text = " New Text "
    rng.Select()

End Sub

Bb157876.collapse_all(es-es,VS.110).gifMiembros de ThisAddIn que se pueden usar para otras tareas

En la tabla siguiente, se describen otras tareas comunes y se muestran los miembros de la clase ThisAddIn que se pueden utilizar para realizarlas.

Tarea

Miembro que se utiliza

Ejecutar código para inicializar el complemento cuando se carga.

Agregue código al método ThisAddIn_Startup.Éste es el controlador de eventos predeterminado para el evento Startup.Para obtener más información, vea Eventos de los proyectos de Office.

Ejecutar código para limpiar los recursos usados por el complemento antes de que se descargue.

Agregue código al método ThisAddIn_Shutdown.Es el controlador de eventos predeterminado del evento Shutdown.Para obtener más información, vea Eventos de los proyectos de Office.

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

Mostrar un panel de tareas personalizado.

Utilice el campo CustomTaskPanes.Para obtener más información, vea Paneles de tareas personalizados.

Exponer los objetos del complemento en otras soluciones de Microsoft Office.

Reemplace el método RequestComAddInAutomationService.Para obtener más información, vea Llamar a código en complementos de nivel de aplicación desde otras soluciones de Office.

Personalizar una característica de Microsoft Office System implementando una interfaz de extensibilidad.

Invalide el método RequestService para devolver una instancia de una clase que implemente la interfaz.Para obtener más información, vea Personalizar características de la interfaz de usuario mediante interfaces de extensibilidad.

NotaNota
Para personalizar la interfaz de usuario de la cinta de opciones, también puede reemplazar el método CreateRibbonExtensibilityObject .

Bb157876.collapse_all(es-es,VS.110).gifIntroducción al diseño de la clase ThisAddIn

En proyectos destinados .NET Framework 4, Microsoft.Office.Tools.AddIn es una interfaz.La clase ThisAddIn se deriva de la clase Microsoft.Office.Tools.AddInBase.Esta clase base redirige todas las llamadas a sus miembros a una implementación interna de la interfaz Microsoft.Office.Tools.AddIn del Runtime de Microsoft Visual Studio Tools para Office.

En proyectos de complemento para Outlook, la clase ThisAddIn se deriva de la clase Microsoft.Office.Tools.Outlook.OutlookAddIn en proyectos destinados a .NET Framework 3.5, y se deriva de Microsoft.Office.Tools.Outlook.OutlookAddInBase en proyectos destinados a .NET Framework 4.Estas clases base proporcionan funciones adicionales para admitir las áreas de formulario.Para obtener más información sobre las áreas de formulario, vea Crear áreas de formulario de Outlook.

Personalizar la interfaz de usuario de aplicaciones de Microsoft Office

Puede personalizar mediante programación la interfaz de usuario de las aplicaciones de Microsoft Office con un complemento de nivel de aplicación.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 le 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 la cinta de opciones y Crear áreas de formulario de Outlook.

Si desea personalizar una de estas características de una forma no admitida por las clases y los diseñadores, también puede personalizar estas características mediante la implementación de una interfaz de extensibilidad en el complemento.Para obtener más información, vea Personalizar características de la interfaz de usuario mediante interfaces de extensibilidad.

Además, puede modificar la interfaz de usuario de documentos de Word y libros de Excel generando elementos host que extienden el comportamiento de los documentos y libros.Esto permite agregar controles administrados a documentos y hojas de cálculo.Para obtener más información, vea Ampliar documentos de Word y libros de Excel en complementos en el nivel de la aplicación en tiempo de ejecución.

Llamar a código en complementos de nivel de aplicación desde otras soluciones

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

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

Vea también

Tareas

Tutorial: Llamar a código de VBA en un complemento de nivel de aplicación

Cómo: Crear proyectos de Office en Visual Studio

Conceptos

Ampliar documentos de Word y libros de Excel en complementos en el nivel de la aplicación en tiempo de ejecución

Llamar a código en complementos de nivel de aplicación desde otras soluciones de Office

Personalizar características de la interfaz de usuario mediante interfaces de extensibilidad

Arquitectura de los complementos de nivel de aplicación

Escribir código en soluciones de Office

Otros recursos

Desarrollar soluciones de Office