Procédure pas à pas : appel de code à partir de VBA dans un projet Visual Basic
Cette procédure pas à pas vous explique comment appeler une méthode dans une personnalisation au niveau du document pour Microsoft Office Word à partir du code VBA du document. Cette procédure comporte trois étapes de base : ajout d'une méthode à la classe d'élément hôte ThisDocument, exposition de la méthode au code VBA et appel de la méthode depuis le code VBA du document.
S'applique à : Les informations contenues dans cette rubrique s'appliquent aux projets de niveau document pour les applications suivantes : Excel 2007, Excel 2010, Word 2007 et Word 2010. Pour en savoir plus, consultez Fonctionnalités disponibles par type d'application et de projet Office.
Bien que cette procédure pas à pas utilise spécifiquement Word, les concepts démontrés sont applicables à d'autres projets Office au niveau du document pour Excel.
Cette procédure pas à pas décrit les tâches suivantes :
Création d'un document contenant du code VBA
Approbation de l'emplacement du document à l'aide du Centre de gestion de la confidentialité de Word
Ajout d'une méthode à la classe d'élément hôte ThisDocument
Exposition de la méthode au code VBA
Appel de la méthode à partir du code VBA
Notes
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. Ces éléments dépendent de l'édition de Visual Studio dont vous disposez et des paramètres que vous utilisez. Pour plus d'informations, consultez Utilisation des paramètres.
Pour une démonstration vidéo connexe, consultez How Do I: Call VSTO Code from VBA? (page éventuellement en anglais).
Composants requis
Pour exécuter cette procédure pas à pas, vous devez disposer des composants suivants :
-
Une édition de Visual Studio 2010 qui inclut les outils de développement Microsoft Office. Pour plus d'informations, consultez [Configuration d'un ordinateur pour développer des solutions Office](bb398242\(v=vs.100\).md).
- Word 2007 ou Word 2010.
Création d'un document contenant du code VBA
La première étape consiste à créer un document prenant en charge les macros et contenant une macro VBA simple. Ce document doit contenir un projet VBA avant que vous puissiez créer un projet Visual Studio basé sur celui-ci. Sinon, Visual Studio ne peut pas modifier le projet VBA pour permettre au code VBA d'appeler l'assembly de personnalisation.
Si vous possédez déjà un document contenant du code VBA que vous souhaitez utiliser, vous pouvez ignorer cette étape.
Pour créer un document contenant du code VBA
Démarrez Word.
Enregistrez le document actif en tant que Document Word prenant en charge les macros (* .docm) sous le nom DocumentAvecVBA dans un emplacement commode, tel que le Bureau.
Dans le ruban, cliquez sur l'onglet Développeur.
Notes
Si l'onglet Développeur n'est pas visible, vous devez préalablement l'afficher. Pour plus d'informations, consultez Comment : afficher l'onglet Développeur sur le ruban.
Dans le groupe Code, cliquez sur Visual Basic.
Visual Basic Editor s'ouvre.
Dans la fenêtre Projet, double-cliquez sur ThisDocument.
Le fichier de code de l'objet ThisDocument s'ouvre.
Ajoutez le code VBA suivant au fichier de code. Ce code crée une fonction simple qui ne fait rien, hormis s'assurer qu'un projet VBA existe dans le document. Elle est nécessaire pour les étapes ultérieures de cette procédure pas à pas.
Sub EmptySub() End Sub
Enregistrez le document et quittez Word.
Création du projet
Vous pouvez à présent créer un projet au niveau du document pour Word qui utilise le document prenant en charge les macros que vous avez créées un peu plus tôt.
Pour créer un projet
Démarrez Visual Studio.
Dans le menu Fichier, pointez sur Nouveau, puis cliquez sur Projet. Si votre interface IDE est définie pour utiliser les paramètres de développement Visual Basic, dans le menu Fichier, cliquez sur Nouveau projet.
Dans le volet de modèles, développez Visual Basic, puis développez Office.
Sélectionnez le nœud 2010 ou 2007.
Dans la liste des modèles de projet, sélectionnez un projet Document Word.
Dans la zone Nom, tapez CallingCodeFromVBA.
Cliquez sur OK.
L'Assistant Projet Visual Studio Tools pour Office s'ouvre.
Sélectionnez Copier un document existant et, dans la zone Chemin d'accès complet du document existant, spécifiez l'emplacement du document DocumentAvecVBA créé précédemment. Si vous utilisez votre propre document prenant en charge les macros, spécifiez l'emplacement de celui-ci.
Cliquez sur Terminer.
Visual Studio ouvre le document DocumentAvecVBA dans le concepteur et ajoute le projet AppelCodeDeVBA dans l'Explorateur de solutions.
Approbation de l'emplacement du document
Avant d'exposer le code de votre solution au code VBA du document, vous devez approuver VBA dans le document à exécuter. Plusieurs méthodes sont possibles. Dans cette procédure pas à pas, nous approuverons l'emplacement du document dans le Centre de gestion de la confidentialité de Word.
Pour approuver l'emplacement du document
Démarrez Word.
Cliquez sur l'onglet Fichier (pour Word 2010) ou le bouton Microsoft Office (pour Word 2007).
Cliquez sur le bouton Options Word.
Dans le volet des catégories, cliquez sur Centre de gestion de la confidentialité.
Dans le volet d'informations, cliquez sur Paramètres du Centre de gestion de la confidentialité.
Dans le volet de catégories, cliquez sur Emplacements approuvés.
Dans le volet d'informations, cliquez sur Ajouter un nouvel emplacement.
Dans la boîte de dialogue Emplacement de Microsoft Office approuvé, recherchez le dossier qui contient le projet CallingCodeFromVBA.
Sélectionnez Les sous-dossiers de cet emplacement sont également approuvés.
Dans la boîte de dialogue Emplacement de Microsoft Office approuvé, cliquez sur OK.
Dans la boîte de dialogue Centre de gestion de la confidentialité, cliquez sur OK.
Dans la boîte de dialogue Options Word, cliquez sur OK.
Quittez Word.
Ajout d'une méthode à la classe ThisDocument
Une fois le projet VBA configuré, ajoutez une méthode à la classe d'élément hôte ThisDocument que vous pouvez appeler à partir du code VBA.
Pour ajouter une méthode à la classe ThisDocument
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur ThisDocument.vb, puis cliquez sur Afficher le code.
Le fichier ThisDocument.vb s'ouvre dans l'Éditeur de code.
Ajoutez la méthode suivante à la classe ThisDocument. Cette méthode crée un tableau comportant deux lignes et deux colonnes au début du document. Les paramètres spécifient le texte affiché dans la première ligne. À une étape ultérieure de cette procédure, vous appellerez cette méthode à partir du code VBA du document.
Public Sub CreateTable(ByVal firstColumnHeader As String, _ ByVal secondColumnHeader As String) Me.Paragraphs(1).Range.InsertParagraphBefore() Dim table1 As Word.Table = Me.Tables.Add(Me.Paragraphs(1).Range, 2, 2) With table1 .Style = "Table Professional" .Cell(1, 1).Range.Text = firstColumnHeader .Cell(1, 2).Range.Text = secondColumnHeader End With End Sub
Générez le projet.
Exposition de la méthode au code VBA
Pour exposer la méthode CreateTable au code VBA du document, affectez la valeur True à la propriété EnableVbaCallers de l'élément hôte ThisDocument.
Pour exposer la méthode au code VBA
Dans l'Explorateur de solutions, double-cliquez sur ThisDocument.vb.
Le fichier DocumentAvecVBA s'ouvre dans le concepteur.
Dans la fenêtre Propriétés, sélectionnez la propriété EnableVbaCallers et remplacez la valeur par True.
Cliquez sur OK en réponse au message qui s'affiche.
Générez le projet.
Appel de la méthode à partir du code VBA
Vous pouvez à présent appeler la méthode CreateTable depuis le code VBA du document.
Notes
Au cours de cette procédure, vous allez ajouter le code VBA au document pendant le débogage du projet. Le code VBA que vous ajoutez au document sera substitué la prochaine fois que vous générerez le projet, car Visual Studio remplacera alors le document dans le dossier de sortie de génération par une copie issue du dossier du projet principal. Si vous voulez enregistrer le code VBA, copiez-le dans le document qui figure dans le dossier du projet. Pour plus d'informations, consultez Appel de code dans des personnalisations au niveau du document à partir de VBA.
Pour appeler la méthode à partir du code VBA
Appuyez sur F5 pour exécuter votre projet.
Sous l'onglet Développeur, dans le groupe Code, cliquez sur Visual Basic.
Visual Basic Editor s'ouvre.
Dans le menu Insertion, cliquez sur Module.
Ajoutez le code suivant au nouveau module.
Ce code appelle la méthode CreateTable dans l'assembly de personnalisation. La macro accède à cette méthode en utilisant la propriété CallVSTOAssembly de l'objet ThisDocument. Cette propriété a été générée automatiquement lorsque vous avez défini la propriété EnableVbaCallers à une étape précédente de cette procédure.
Sub CreateTable() Call ThisDocument.CallVSTOAssembly.CreateTable("Employee Name", "Start Date") End Sub
Appuyez sur F5.
Vérifiez qu'une nouvelle table a été ajoutée au document.
Quittez Word sans enregistrer les modifications.
Étapes suivantes
Pour en savoir plus sur l'appel de code dans les solutions Office depuis VBA, consultez les rubriques suivantes :
Appel de code dans une personnalisation Visual C# depuis VBA. Ce processus n'est pas le même que dans Visual Basic. Pour plus d'informations, consultez Procédure pas à pas : appel de code à partir de VBA dans un projet Visual C#.
Appel de code dans un complément d'application à partir de VBA. Pour plus d'informations, consultez Procédure pas à pas : appel de code dans un complément d'application à partir de VBA.
Voir aussi
Tâches
Comment : exposer du code à VBA dans un projet Visual Basic
Comment : exposer du code à VBA dans un projet Visual C#
Procédure pas à pas : appel de code à partir de VBA dans un projet Visual C#
Autres ressources
Combinaison de VBA et de personnalisations au niveau du document