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
Version de Microsoft Office
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 :
La classe doit être publique et l'attribut ComVisibleAttribute doit avoir la valeur true.
La classe doit exposer l'interface IDispatch. Une classe peut effectuer cette opération de deux manières :
La classe peut implémenter une interface dont le ComVisibleAttribute a la valeur true et le InterfaceTypeAttribute a la valeur InterfaceIsIDispatch ou InterfaceIsDual.
- ou -
Dans la classe, le ClassInterfaceAttribute peut avoir la valeur AutoDual ou AutoDispatch.
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é) :
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.
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