Partager via


Combinaison de VBA et de personnalisations au niveau du document

Vous pouvez utiliser du code Visual Basic for Applications (VBA) dans un document faisant partie d'une personnalisation au niveau du document pour Microsoft Office Word ou Microsoft Office Excel. Vous pouvez appeler du code VBA dans le document de l'assembly de personnalisation ou configurer votre projet pour permettre au code VBA du document d'appeler le code de l'assembly de personnalisation. Pour plus d'informations sur cette tâche, consultez Appel de code dans des personnalisations au niveau du document à partir de VBA.

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.

Comportement de code VBA dans une personnalisation au niveau du document

Lorsque vous ouvrez votre projet dans Visual Studio, le document s'ouvre en mode Design. Le code VBA ne s'exécute pas lorsque le document est en mode Design, afin que vous puissiez travailler sur le document et coder sans exécuter le code VBA.

Lorsque vous exécutez la solution, les gestionnaires d'événements du VBA et de l'assembly de personnalisation prennent des événements déclenchés dans le document et les deux ensembles d'exécution de code. Il est impossible de savoir à l'avance quel code s'exécutera avant l'autre ; vous devez le déterminer de manière empirique dans chaque cas. Vous pouvez obtenir des résultats inattendus si les deux jeux de codes ne sont pas coordonnés et testés avec soin.

Appel du code VBA à partir de l'assembly de personnalisation

Vous pouvez appeler des macros dans les documents Word, ainsi que des macros et des fonctions dans les classeurs Excel. Pour ce faire, utilisez l'une des méthodes suivantes :

Pour chaque méthode, le premier paramètre identifie le nom de la macro ou de la fonction que vous souhaitez appeler, et les paramètres optionnels restants spécifient les paramètres à passer à la macro ou à la fonction. Le premier paramètre peut avoir des formats différents pour Word et Excel :

  • Pour Word, le premier paramètre est une chaîne qui peut être toute combinaison de nom de modèle, de module et de macro. Si vous spécifiez le nom de document, votre code peut exécuter uniquement des macros dans les documents en rapport avec le contexte actuel — et non pas dans toute macro de tout document.

  • Pour Excel, le premier paramètre peut être une chaîne qui spécifie le nom de macro, un Range qui indique où se trouve la fonction, ou un ID de registre pour une fonction DLL (XLL) enregistrée. Si vous passez une chaîne, la chaîne sera évaluée dans le contexte de la feuille active.

L'exemple de code suivant montre comment appeler une macro nommée MyMacro à partir d'un projet au niveau du document pour Excel. Cet exemple suppose que MyMacro est défini dans Sheet1.

Globals.Sheet1.Application.Run("MyMacro")
Globals.Sheet1.Application.Run("MyMacro", missing, missing, missing,
    missing, missing, missing, missing, missing, missing, missing,
    missing, missing, missing, missing, missing, missing, missing,
    missing, missing, missing, missing, missing, missing, missing, 
    missing, missing, missing, missing, missing, missing);

Notes

Pour plus d'informations sur l'utilisation de la variable globale missing à la place de paramètres optionnels dans Visual C#, consultez Programmation avec Visual Basic et Visual C# dans les solutions Office.

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 Basic

Procédure pas à pas : appel de code à partir de VBA dans un projet Visual C#

Concepts

Appel de code dans des personnalisations au niveau du document à partir de VBA

Comparaison des solutions VBA et Office dans Visual Studio

Vue d'ensemble des assemblys dans les solutions Office

Autres ressources

Conception et création de solutions Office