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 para Microsoft Office 2010 y 2007 Microsoft Office System. 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 Motor en tiempo de ejecución 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 2010, de forma predeterminada no se llama siempre al controlador de eventos ThisAddIn_Shutdown cuando se descarga el complemento. Para obtener más información, vea Eventos de los proyectos de Office.

Tener 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:

Miembros 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 2010, de forma predeterminada no se llama siempre 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 recuadro de tareas personalizado.

Utilice el campo CustomTaskPanes. Para obtener más información, vea Información general sobre los paneles de tareas personalizados.

Crear una etiqueta inteligente que se puede reconocer en cualquier documento de Word o libro de Excel que esté abierto.

NotaNota
Las etiquetas inteligentes están desusadas en Excel 2010 y Word 2010.Para obtener más información, vea Información general sobre etiquetas inteligentes.

Utilice el campo VstoSmartTags en un complemento para Excel o Word. Para obtener más información, vea Información general sobre etiquetas inteligentes.

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 invalidar el método CreateRibbonExtensibilityObject.

Introducción al diseño de la clase ThisAddIn

En proyectos destinados a .NET Framework 3.5, la clase ThisAddIn se deriva de la clase Microsoft.Office.Tools.AddIn del Motor en tiempo de ejecución de Microsoft Visual Studio Tools para Office.

En proyectos destinados a .NET Framework 4, la clase Microsoft.Office.Tools.AddIn es una interfaz, por lo que la clase ThisAddIn generada no puede derivar ninguna implementación de la misma. En su lugar, 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 Motor en tiempo de ejecución de Microsoft Visual Studio Tools para Office. Para obtener más información sobre las diferencias del Motor en tiempo de ejecución de Microsoft Visual Studio Tools para Office para los proyectos destinados a .NET Framework 3.5 y los destinados a .NET Framework 4, vea Información general sobre el Motor en tiempo de ejecución 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 Información general sobre los 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.

También puede modificar la interfaz de usuario de los documentos de Word y libros de Excel generando elementos host que extienden el comportamiento de los documentos y libros. Esto le permite agregar controles administrados y etiquetas inteligentes a los documentos y las 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 en datos financieros de un servicio Web, otras soluciones pueden realizar estos cálculos mediante una llamada en tiempo de ejecución al complemento de Excel.

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