Procédure pas à pas : appeler du code dans un complément VSTO à partir de VBA
Cette procédure pas à pas montre comment exposer un objet dans un complément VSTO à d’autres solutions Microsoft Office, notamment des compléments VSTO VBA (Visual Basic pour Applications) et COM.
S’applique à : les informations contenues dans cette rubrique s’appliquent aux projets de complément VSTO. Pour plus d’informations, consultez Fonctionnalités disponibles par application Office lication et le type de projet.
Bien que cette procédure pas à pas utilise spécifiquement Excel, les concepts présentés ici s'appliquent à tous les modèles de projet de complément VSTO fournis par Visual Studio.
Cette procédure pas à pas décrit les tâches suivantes :
Définition d'une classe pouvant être exposée à d'autres solutions Office
Exposition de la classe à d'autres solutions Office
Appel d'une méthode de la classe à partir du code VBA
Remarque
Il est possible que pour certains des éléments de l'interface utilisateur de Visual Studio, votre ordinateur affiche des noms ou des emplacements différents de ceux indiqués dans les instructions suivantes. L'édition de Visual Studio dont vous disposez et les paramètres que vous utilisez déterminent ces éléments. Pour plus d’informations, consultez Personnaliser l’IDE.
Prérequis
Vous devez disposer des éléments suivants pour exécuter cette procédure pas à pas :
Une édition de Visual Studio qui inclut les outils de développement Microsoft Office. Pour plus d’informations, consultez Configurer un ordinateur pour développer des solutions Bureau.
Microsoft Excel
Créer le projet de complément VSTO
La première étape consiste à créer un projet de complément VSTO pour Excel.
Pour créer un projet
Créez un projet de complément VSTO Excel nommé ExcelImportDataà l’aide du modèle de projet de complément VSTO Excel. Pour plus d'informations, consultez How to: Create Office Projects in Visual Studio.
Visual Studio ouvre le fichier de code ThisAddIn.cs ou ThisAddIn.vb et ajoute le projet ExcelImportData à Explorateur de solutions.
Définir une classe que vous pouvez exposer à d’autres solutions Bureau
L'objectif de cette procédure pas à pas est d'appeler la méthode ImportData
d'une classe nommée AddInUtilities
dans votre complément VSTO à partir du code VBA. Cette méthode écrit une chaîne dans la cellule A1 de la feuille de calcul active.
Pour exposer la classe AddInUtilities
à d'autres solutions Office, vous devez faire rendre la classe publique et visible par COM. Vous devez également exposer l'interface IDispatch dans la classe. Le code de la procédure suivante vous montre une façon de respecter ces exigences. Pour plus d'informations, consultez Calling Code in VSTO Add-ins from Other Office Solutions.
Pour définir une classe pouvant être exposée à d'autres solutions Office
Dans le menu Projet , cliquez sur Ajouter une classe.
Dans la boîte de dialogue Ajouter un nouvel élément , remplacez le nom de la nouvelle classe par AddInUtilities, puis cliquez sur Ajouter.
Le fichier AddInUtilities.cs ou AddInUtilities.vb s'ouvre dans l'éditeur de code.
Ajoutez les directives suivantes au début du fichier.
Remplacez la classe
AddInUtilities
par le code suivant :[ComVisible(true)] public interface IAddInUtilities { void ImportData(); } [ComVisible(true)] [ClassInterface(ClassInterfaceType.None)] public class AddInUtilities : IAddInUtilities { // This method tries to write a string to cell A1 in the active worksheet. public void ImportData() { Excel.Worksheet activeWorksheet = Globals.ThisAddIn.Application.ActiveSheet as Excel.Worksheet; if (activeWorksheet != null) { Excel.Range range1 = activeWorksheet.get_Range("A1", System.Type.Missing); range1.Value2 = "This is my data"; } } }
Ce code rend la classe
AddInUtilities
visible par COM et ajoute la méthodeImportData
à la classe. Pour exposer l'interface IDispatch , la classeAddInUtilities
possède également l'attribut ClassInterfaceAttribute et implémente une interface visible par COM.
Exposer la classe à d’autres solutions Bureau
Pour exposer la classe AddInUtilities
à d'autres solutions Office, substituez la méthode RequestComAddInAutomationService dans la classe ThisAddIn
. Dans la substitution, retournez une instance de la classe AddInUtilities
.
Pour exposer la classe AddInUtilities à d'autres Solutions Office
Dans l' Explorateur de solutions, développez Excel.
Cliquez avec le bouton droit sur ThisAddIn.cs ou ThisAddIn.vb, puis cliquez sur Afficher le code.
Ajoutez le code suivant à la classe
ThisAddIn
.Dans le menu Générer, cliquez sur Générer la solution.
Vérifiez que la solution se génère sans erreur.
Tester le complément VSTO
Vous pouvez exécuter un appel dans la classe AddInUtilities
à partir de différents types de solutions Office. Dans cette procédure pas à pas, vous allez utiliser du code VBA dans un classeur Excel. Pour plus d’informations sur les autres types de solutions Bureau que vous pouvez également utiliser, consultez Code d’appel dans les compléments VSTO à partir d’autres solutions Bureau.
Pour tester votre complément VSTO
Appuyez sur F5 pour exécuter votre projet.
Dans Excel, enregistrez le classeur actif en tant que classeur Excel prenant en charge les macros (*.xlsm) dans un emplacement pratique, tel que le Bureau.
Dans le ruban, cliquez sur l'onglet Développeur .
Remarque
Si l'onglet Développeur n'est pas visible, vous devez tout d'abord l'afficher. Pour plus d’informations, consultez Guide pratique pour afficher l’onglet Développeur du ruban.
Dans le groupe Code , cliquez sur Visual Basic.
Visual Basic Editor s'ouvre.
Dans la fenêtre Projet , double-cliquez sur ThisWorkbook.
Le fichier de code de l'objet
ThisWorkbook
s'ouvre.Ajoutez le code VBA suivant au fichier de code. Ce code obtient d’abord un objet COMAddIn qui représente le complément VSTO ExcelImportData . Ensuite, le code utilise la propriété Object de l’objet COMAddIn pour appeler la
ImportData
méthode.Sub CallVSTOMethod() Dim addIn As COMAddIn Dim automationObject As Object Set addIn = Application.COMAddIns("ExcelImportData") Set automationObject = addIn.Object automationObject.ImportData End Sub
Appuyez sur F5.
Assurez-vous qu'une nouvelle feuille de calcul Imported Data a été ajoutée au classeur. Vérifiez également que la cellule A1 contient la chaîne This is my data.
Quittez Excel.
Étapes suivantes
Pour en savoir plus sur la programmation de compléments VSTO, consultez les rubriques suivantes :
Utiliser la classe
ThisAddIn
pour automatiser l'application hôte et effectuer d'autres tâches dans les projets de complément VSTO. Pour plus d’informations, consultez Les compléments VSTO program.Créer un volet des tâches personnalisé dans un complément VSTO. Pour plus d’informations, consultez volets Office personnalisés et Guide pratique pour ajouter un volet Office personnalisé à une application.
Personnalisez le ruban dans un complément VSTO. Pour plus d’informations, consultez vue d’ensemble du ruban et Guide pratique pour commencer à personnaliser le ruban.
Contenu connexe
- Programmer des compléments VSTO
- Appeler du code dans des compléments VSTO à partir d’autres solutions Bureau
- Développer des solutions Bureau
- Guide pratique pour créer des projets Bureau dans Visual Studio
- Architecture of VSTO Add-ins
- Personnaliser les fonctionnalités de l’interface utilisateur à l’aide d’interfaces d’extensibilité