Compartir a través de


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

Actualización: noviembre 2007

Se aplica a

La información de este tema sólo se aplica a los proyectos de Visual Studio Tools para Office y versiones de Microsoft Office especificados.

Tipo de proyecto

  • Proyectos de nivel de aplicación

Versión de Microsoft Office

  • Microsoft Office System 2007

  • Microsoft Office 2003

Para obtener más información, vea Características disponibles por aplicación y tipo de proyecto.

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

Visual Studio Tools para Office también proporciona una característica similar para las personalizaciones de nivel de documento. Si va a desarrollar una personalización para 2007 Microsoft Office system, puede llamar al código de la personalización desde código de VBA en el documento. Para obtener más información, consulte Llamar a código de VBA en personalizaciones de nivel de documento.

Soluciones de Office que pueden llamar a código de un complemento

Puede exponer un objeto de un complemento a los tipos siguientes de soluciones de Office:

  • Otros complementos de Visual Studio Tools para Office.

  • Personalizaciones de nivel de documento que se cargan en el mismo proceso de aplicación que el complemento.

  • Complementos COM (es decir, complementos que implementan directamente la interfaz IDTExtensibility2).

  • Código de Visual Basic para Aplicaciones (VBA) en un documento que se carga en el mismo proceso de la aplicación que el complemento.

Exponer objetos a otras soluciones de Office

Para exponer un objeto a otros complementos, invalide el método RequestComAddInAutomationService de la clase ThisAddIn. Devuelva el objeto que desea exponer a otras soluciones de Office.

Cuando se carga el complemento, el motor en tiempo de ejecución de Visual Studio Tools para Office llama al método RequestComAddInAutomationService. El motor en tiempo de ejecución asigna el objeto devuelto a la propiedad Object de un objeto COMAddIn que representa el complemento. Este objeto COMAddIn está disponible para otras soluciones de Office.

Requisitos del objeto devuelto

La implementación de RequestComAddInAutomationService debe devolver una instancia de una clase que cumple los requisitos siguientes:

Si el objeto que devuelve no cumple estos requisitos, el motor en tiempo de ejecución de Visual Studio Tools para Office producirá una InvalidCastException después de llamar a la implementación.

Para consultar un ejemplo de una clase que cumple estos requisitos, vea Tutorial: Llamar a código de VBA en un complemento de nivel de aplicación.

Código de

En el siguiente ejemplo de código se muestra cómo invalidar RequestComAddInAutomationService. Este ejemplo supone que ha definido una clase denominada AddInUtilities que desea exponer a otras soluciones de Office y que la clase AddInUtilities cumple los requisitos especificados anteriormente. Para consultar este código en el contexto de un tutorial mayor, vea Tutorial: Llamar a código de VBA en un complemento de nivel de aplicación.

Private utilities As AddInUtilities

Protected Overrides Function RequestComAddInAutomationService() As Object
    If utilities Is Nothing Then
        utilities = New AddInUtilities()
    End If
    Return utilities
End Function
private AddInUtilities utilities;

protected override object RequestComAddInAutomationService()
{
    if (utilities == null)
        utilities = new AddInUtilities();

    return utilities;
}

Obtener acceso a objetos desde otras soluciones de Office

En el código de una solución de Office diferente (no el complemento expuesto), realice los pasos siguientes:

  1. Obtenga el objeto COMAddIn que representa el complemento expuesto. Puede obtener acceso a todos los complementos disponibles mediante la propiedad COMAddIns de la clase Application.

  2. Obtenga acceso a la propiedad Object del objeto COMAddIn.

En el siguiente ejemplo de código se muestra cómo usar VBA para llamar a un método de un complemento. Esta macro de VBA llama a un método denominado ImportData que se define en un complemento con el nombre ExcelImportData. Para consultar este código en el contexto de un tutorial mayor, vea Tutorial: Llamar a código de VBA en un complemento de nivel de aplicación.

Sub CallVSTOMethod()
    Dim addIn As COMAddIn
    Dim automationbject As Object
    Set addIn = Application.COMAddIns("ExcelImportData")
    Set automationObject = addIn.Object
    automationObject.ImportData
End Sub

Vea también

Tareas

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

Cómo: Crear proyectos de Visual Studio para Office

Conceptos

Programar complementos de nivel de aplicación

Desarrollar soluciones de Office

Elemento host AddIn

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

Arquitectura de los complementos de nivel de aplicación