Share via


Appel de code dans des compléments d'application à partir d'autres solutions Office

Mise à jour : novembre 2007

S'applique à

Les informations de cette rubrique s'appliquent uniquement aux projets Visual Studio Tools pour Office et versions de Microsoft Office spécifiés.

Type de projet

  • Projets au niveau de l'application

Version de Microsoft Office

  • Version 2007 de Microsoft Office System

  • Microsoft Office 2003

Pour plus d'informations, consultez Fonctionnalités disponibles par type d'application et de projet.

Vous pouvez exposer un objet de votre complément à d'autres solutions Microsoft Office. Cette fonctionnalité est utile si votre complément propose un service que vous souhaitez rendre accessible à d'autres solutions Office. Par exemple, si vous disposez d'un complément pour Microsoft Office Excel qui effectue des calculs sur des données financières d'un service Web, d'autres solutions Office peuvent effectuer ces calculs en appelant le complément Excel au moment de l'exécution.

Visual Studio Tools pour Office fournit également une fonctionnalité similaire pour les personnalisations au niveau du document. Si vous développez une personnalisation pour la version 2007 de Microsoft Office System, vous pouvez appeler le code dans votre personnalisation à partir du code VBA du document. Pour plus d'informations, consultez Appel de code dans des personnalisations au niveau du document à partir de VBA.

Solutions Office pouvant appeler le code dans un complément

Vous pouvez exposer un objet d'un complément aux types suivants de solutions Office :

  • D'autres compléments Visual Studio Tools pour Office.

  • Des personnalisations au niveau du document chargées dans le même processus d'application que votre complément.

  • Des compléments COM (c'est-à-dire des compléments qui implémentent l'interface IDTExtensibility2 directement).

  • Le code VBA (Visual Basic pour Applications) d'un document chargé dans le même processus d'application que votre complément.

Exposition d'objets à d'autres solutions Office

Pour exposer un objet à d'autres compléments, substituez la méthode RequestComAddInAutomationService dans la classe ThisAddIn. Retournez l'objet que vous souhaitez exposer à d'autres solutions Office.

Lorsque votre complément est chargé, le runtime de Visual Studio Tools pour Office appelle la méthode RequestComAddInAutomationService. Le runtime assigne à l'objet retourné la propriété Object d'un objet COMAddIn qui représente votre complément. Cet objet COMAddIn est accessible par d'autres solutions Office.

Exigences concernant l'objet retourné

Votre implémentation de RequestComAddInAutomationService doit retourner une instance de classe satisfaisant aux exigences suivantes :

Si l'objet que vous retournez ne remplit pas ces conditions, le runtime de Visual Studio Tools pour Office lève une exception InvalidCastException après avoir appelé votre implémentation.

Pour voir un exemple de classe remplissant ces conditions, consultez Procédure pas à pas : appel de code dans un complément d'application à partir de VBA.

Exemple

L'exemple de code suivant explique comment substituer RequestComAddInAutomationService. Il part du principe que vous avez défini une classe appelée AddInUtilities que vous souhaitez exposer à d'autres solutions Office et que la classe AddInUtilities remplit les conditions spécifiées ci-dessus. Pour voir ce code dans le contexte d'une procédure pas à pas plus vaste, consultez Procédure pas à pas : appel de code dans un complément d'application à partir de VBA.

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;
}

Accès aux objets d'autres solutions Office

Effectuez les étapes suivantes dans le code d'une autre solution Office (pas le complément exposé) :

  1. Obtenez l'objet COMAddIn qui représente le complément exposé. Vous pouvez accéder à tous les compléments disponibles à l'aide de la propriété COMAddIns de la classe Application.

  2. Accédez à la propriété Object de l'objet COMAddIn.

L'exemple de code suivant explique comment utiliser VBA pour appeler une méthode dans un complément. Cette macro VBA appelle une méthode nommée ImportData définie dans un complément nommé ExcelImportData. Pour voir ce code dans le contexte d'une procédure pas à pas plus vaste, consultez Procédure pas à pas : appel de code dans un complément d'application à partir de VBA.

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

Voir aussi

Tâches

Procédure pas à pas : appel de code dans un complément d'application à partir de VBA

Comment : créer des projets Visual Studio Tools pour Office

Concepts

Programmation de compléments d'application

Développement de solutions Office

Élément hôte AddIn

Personnalisation des fonctionnalités de l'interface utilisateur à l'aide d'interfaces d'extensibilité

Architecture des compléments d'application