Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cette procédure pas à pas montre comment appeler une méthode dans une personnalisation au niveau du document pour Microsoft Office Word à partir du code Visual Basic pour Applications (VBA) dans le document. La procédure implique trois étapes de base : ajouter une méthode à la ThisDocument classe d’élément hôte, exposer la méthode au code VBA, puis appeler la méthode à partir du code VBA dans le document.
S’applique à : Les informations contenues dans cette rubrique s’appliquent aux projets au niveau du document pour Excel et Word. Pour plus d’informations, consultez Fonctionnalités disponibles par type d’application et de projet Office.
Bien que cette procédure pas à pas utilise Word spécifiquement, les concepts présentés par la procédure pas à pas s’appliquent également aux projets au niveau du document pour Excel.
Cette procédure pas à pas décrit les tâches suivantes :
Création d’un document qui contient du code VBA.
Faire confiance à l’emplacement du document à l’aide du Centre de fiabilité dans Word.
Ajout d’une méthode à la classe d’élément
ThisDocumenthôte.Exposer la méthode au code VBA.
Appel de la méthode à partir du code VBA.
Note
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 Visual Studio.
Prerequisites
Vous devez disposer des éléments suivants pour exécuter cette procédure pas à pas :
É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 Office.
Microsoft Word
Créer un document qui contient du code VBA
La première étape consiste à créer un document prenant en charge les macros qui contient une macro VBA simple. Le document doit contenir un projet VBA avant de créer un projet Visual Studio basé sur ce document. Sinon, Visual Studio ne peut pas modifier le projet VBA pour permettre au code VBA d’appeler l’assembly de personnalisation.
Si vous disposez déjà d’un document qui contient du code VBA que vous souhaitez utiliser, vous pouvez ignorer cette étape.
Pour créer un document qui contient du code VBA
Démarrez Word.
Enregistrez le document actif sous la forme d’un document Word avec macros activées (*.docm) avec le nom DocumentWithVBA. Enregistrez-le dans un emplacement pratique, tel que le bureau.
Dans le ruban, cliquez sur l’onglet Développeur .
Note
Si l’onglet Développeur n’est pas visible, vous devez 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 ThisDocument.
Le fichier de code de l’objet
ThisDocuments’ouvre.Ajoutez le code VBA suivant au fichier de code. Ce code définit une fonction simple qui ne fait rien. Le seul objectif de cette fonction est de s’assurer qu’un projet VBA existe dans le document. Cela est nécessaire pour les étapes ultérieures de cette procédure pas à pas.
Sub EmptySub() End SubEnregistrez le document et quittez Word.
Créer le projet
Vous pouvez maintenant créer un projet au niveau du document pour Word qui utilise le document avec macro que vous avez créé précédemment.
Pour créer un projet
Démarrez Visual Studio.
Dans le menu Fichier , pointez sur Nouveau, puis cliquez sur Projet. Si votre IDE est défini pour utiliser les paramètres de développement Visual Basic, dans le menu Fichier , cliquez sur Nouveau projet.
Dans le volet modèles, développez Visual Basic, puis développez Office/SharePoint.
Sélectionnez le nœud Compléments Office .
Dans la liste des modèles de projet, sélectionnez le projet document Word 2010 ou Word 2013 Document .
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 le chemin d’accès complet de la zone de document existant , spécifiez l’emplacement du document DocumentWithVBA que vous avez créé précédemment. Si vous utilisez votre propre document avec macro, spécifiez plutôt l’emplacement de ce document.
Cliquez sur Terminer.
Visual Studio ouvre le document DocumentWithVBA dans le concepteur et ajoute le projet CallingCodeFromVBA à l’Explorateur de solutions.
Faire confiance à l’emplacement du document
Avant de pouvoir exposer du code dans votre solution au code VBA dans le document, vous devez faire confiance à VBA dans le document pour l'exécuter. Il existe plusieurs façons de procéder. Pour cette procédure pas à pas, faites confiance à l’emplacement du document dans le Centre de gestion de la confidentialité dans Word.
Pour faire confiance à l’emplacement du document
Démarrez Word.
Cliquez sur l’onglet Fichier .
Cliquez sur le bouton Options de Word .
Dans le volet 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 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 approuvé Microsoft Office , accédez au 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 approuvé Microsoft Office , 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.
Ajouter une méthode à la classe ThisDocument
Maintenant que le projet VBA est configuré, ajoutez une méthode à la ThisDocument classe d’élément hôte 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 une table avec deux lignes et deux colonnes au début du document. Les paramètres spécifient le texte affiché dans la première ligne. Plus loin dans cette procédure pas à pas, vous allez appeler cette méthode à partir du code VBA dans le 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 SubConstruisez le projet.
Exposer la méthode au code VBA
Pour exposer la CreateTable méthode au code VBA dans le document, définissez la propriété EnableVbaCallers pour l’élément ThisDocument hôte sur True.
Pour exposer la méthode au code VBA
Dans l’Explorateur de solutions, double-cliquez sur ThisDocument.vb.
Le fichier DocumentWithVBA 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 dans le message qui s’affiche.
Construisez le projet.
Appeler la méthode à partir du code VBA
Vous pouvez maintenant appeler la CreateTable méthode à partir du code VBA dans le document.
Note
Dans cette procédure pas à pas, vous allez ajouter du code VBA au document lors du débogage du projet. Le code VBA que vous ajoutez à ce document sera remplacé la prochaine fois que vous générez le projet, car Visual Studio remplace le document dans le dossier de sortie de build par une copie du document à partir du dossier du projet principal. Si vous souhaitez enregistrer le code VBA, vous pouvez le copier dans le document dans le dossier du projet. Pour plus d’informations, consultez Combiner des personnalisations au niveau du document et 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
CreateTableméthode dans l’assembly de personnalisation. La macro accède à cette méthode à l’aide de laCallVSTOAssemblypropriété de l’objetThisDocument. Cette propriété a été générée automatiquement lorsque vous définissez la propriété EnableVbaCallers précédemment dans cette procédure pas à pas.Sub CreateTable() Call ThisDocument.CallVSTOAssembly.CreateTable("Employee Name", "Start Date") End SubAppuyez sur F5.
Vérifiez qu’une nouvelle table a été ajoutée au document.
Quittez Word sans enregistrer vos modifications.
Étapes suivantes
Vous pouvez en savoir plus sur l’appel de code dans les solutions Office à partir de VBA dans les rubriques suivantes :
Appelez du code dans une personnalisation Visual C# à partir de VBA. Ce processus est différent du processus Visual Basic. Pour plus d’informations, consultez Procédure pas à pas : appeler du code VBA dans un projet Visual C#.
Exécutez du code dans un complément VSTO à partir de VBA. Pour plus d’informations, consultez Procédure pas à pas : appeler du code dans un complément VSTO à partir de VBA.
Contenu connexe
- Combiner VBA et des personnalisations au niveau du document
- Personnalisations au niveau du document du programme
- Guide pratique pour exposer du code à VBA dans un projet Visual Basic
- Guide pratique pour exposer du code à VBA dans un projet Visual C#
- Procédure pas à pas : appeler du code VBA dans un projet Visual C#