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.
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 InfoPath |
|
Microsoft Office Outlook |
|
Microsoft Office PowerPoint |
|
Microsoft Office Project |
Microsoft.Office.Interop.MSProject.Application |
Microsoft Office Visio |
Microsoft.Office.Interop.Visio.Application |
Microsoft Office Word |
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:
Tener 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
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.
Nota
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.
Nota
Para personalizar la interfaz de usuario de la cinta de opciones, también puede reemplazar el método CreateRibbonExtensibilityObject .
|
Introducció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
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