Partager via


Combinaison de VBA et de personnalisations au niveau du document

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

  • Projets au niveau du document

Version de Microsoft Office

  • Version 2007 de Microsoft Office System

  • Microsoft Office 2003

Pour plus d'informations, consultez Fonctionnalités disponibles par type d'application et de projet.

Vous pouvez utiliser du code Visual Basic pour applications (VBA) dans un document qui fait partie d'une personnalisation Visual Studio Tools pour Office au niveau du document pour Microsoft Office Word ou Microsoft Office Excel. Dans tous les projets au niveau du document, vous pouvez appeler du code VBA dans le document à partir de l'assembly de personnalisation. Dans les projets au niveau du document pour la version 2007 de Microsoft Office System, vous pouvez également configurer votre projet pour permettre au code VBA dans le document d'appeler le code dans l'assembly de personnalisation. Pour plus d'informations, consultez Appel de code dans des personnalisations au niveau du document à partir de VBA.

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 dans VBA et dans l'assembly Visual Studio Tools pour Office récupèrent les événements déclenchés dans le document, puis les deux jeux de codes s'exécutent. 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);
Remarque :

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

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

Création de solutions Office dans Visual Studio

Comparaison de VBA et des solutions Visual Studio Tools pour Office

Vue d'ensemble des assemblys dans les solutions Office