Comment faire pour créer des compléments COM Office à l'aide de VBA et Office Developer

Traductions disponibles Traductions disponibles
Numéro d'article: 306130 - Voir les produits auxquels s'applique cet article
Ancien nº de publication de cet article : F306130
Agrandir tout | Réduire tout

Sommaire

Résumé

Cet article explique comment afficher une feuille UserForm de bienvenue lors du démarrage de Microsoft Excel ou Microsoft Word. Les compléments COM (Component Object Model) permettent de centraliser le code commun dans une bibliothèque de liens dynamiques (DLL) compilée qui peut être facilement implémentée dans n'importe quelle application Office (par exemple, vous pouvez accéder aux contacts de Microsoft Outlook à partir d'Excel, de Word et de Microsoft Access). Le procédé le plus simple pour développer une DLL COM dans Microsoft Office consiste à utiliser un projet de complément qui fournit un concepteur et une référence à la bibliothèque IDTExtensibility2.

Conditions requises

Cet article suppose que vous maîtrisez les sujets suivants :

  • la création de procédures Visual Basic pour Applications (VBA) dans une application Office XP ;
  • l'utilisation de feuilles UserForm dans VBA ;
  • la personnalisation des barres d'outils Office XP.

Création d'un projet de complément

Vous pouvez créer un projet de complément dans une application Microsoft Office 2000 ou Microsoft Office XP quelconque si Microsoft Office Developer 2000 ou les outils développeur de Microsoft Office XP sont installés sur votre ordinateur. L'exemple ci-dessous utilise Microsoft Word 2002.
  1. Démarrez Microsoft Word 2002.
  2. Dans le menu Outils, pointez sur Macro, puis cliquez sur Visual Basic Editor.
  3. Dans le menu Fichier de Visual Basic Editor, cliquez sur Nouveau projet.
  4. Dans la boîte de dialogue Nouveau projet, cliquez sur Projet de complément. Un concepteur Add-In Designer est automatiquement ouvert.
  5. Si la fenêtre Propriétés n'est pas déjà affichée, cliquez sur Fenêtre Propriétés dans le menu Affichage.
  6. Dans la fenêtre Propriétés, renommez le projet AddInDesigner1 en WelcomeAddIn.
  7. Dans le menu Insertion, cliquez sur UserForm pour insérer une feuille UserForm.
  8. À partir de la boîte à outils, ajoutez une étiquette et un bouton de commande à la feuille UserForm.
  9. Dans la fenêtre Propriétés, modifiez les attributs des contrôles pour qu'ils correspondent aux valeurs répertoriées dans le tableau suivant :
    Réduire ce tableauAgrandir ce tableau
    ContrôlePropriétésValeur
    LabelNamelblMessage
    CaptionWelcome
    Font14pt
    AutoSizeTrue
    CommandButtonNamecmdOK
    CaptionOK
    UserFormNamefrmWelcome

  10. Dans le menu Insertion, cliquez sur Module pour insérer un module standard.
  11. Ajoutez la déclaration des variables de chaîne globale suivante au module standard :
    Public gstrUserName As String
    'This variable will be used to store the name of the user as defined
    'in the Options dialog boxes (from the Tools menu) in Word and Excel.
    					
  12. Dans le module, ajoutez le code suivant pour créer une sous-procédure publique nommée DisplayForm pour afficher la feuille à l'écran :
    Public Sub DisplayForm()
      frmWelcome.Show vbModal
    End Sub
    					
  13. Affichez la fenêtre de code de la feuille frmWelcome et ajoutez le code suivant à l'événement UserForm_Initialize pour concaténer la légende de l'étiquette et la variable de la chaîne :
    lblMessage.Caption = lblMessage.Caption & " " & gstrUserName
    					
  14. Ajoutez le code suivant à l'événement Click du bouton de commande cmdOK pour décharger la feuille :
    Unload me
    					

Modification des propriétés du concepteur Add-In Designer

Pour modifier les propriétés du concepteur de sorte que le complément démarre dès le démarrage de Microsoft Excel, procédez comme suit :
  1. Dans l'Explorateur de projets, double-cliquez sur le composant pour retourner au concepteur Add-In Designer.
  2. Sous l'onglet Général du concepteur, modifiez les propriétés du concepteur pour qu'elles correspondent aux valeurs répertoriées dans le tableau suivant :
    Réduire ce tableauAgrandir ce tableau
    PropriétéValeur
    AddIn Display NameFunFormMessage
    AddIn DescriptionContient du code spécifique à Excel
    ApplicationMicrosoft Excel
    Application VersionMicrosoft Excel 10.0
    Initial Load BehaviorStartup

Implémentation des événements IDTExtensibility2

  1. Dans le menu Affichage, cliquez sur Code pour afficher le module de code sous-jacent au concepteur.
  2. Dans le menu Outils, cliquez sur Référenceset définissez une référence à la bibliothèque d'objets Microsoft Excel.
  3. Dans la liste déroulante Objet, cliquez sur AddinInstance. Dans la liste déroulante Procédure, cliquez sur OnConnection.

    Cet événement est utile pour créer un bouton CommandBar ou pour associer le code à un événement tel qu'un événement d'application lorsque le complément est connecté à l'application hôte.
  4. Ajoutez le code suivant à la procédure d'événement AddinInstance_OnConnection pour stocker le nom d'utilisateur dans la variable globale strUserName et pour appeler la procédure DisplayForm :
    gstrUserName = Application.UserName
    DisplayForm
    					
  5. Dans Visual Basic Editor, cliquez sur Enregistreret nommez le projet Welcome.vba.

Ajout d'un deuxième concepteur

Dans cette procédure, vous ajoutez un deuxième concepteur pour implémenter la même fonctionnalité dans Microsoft Word.
  1. Créez un autre projet de complément dans Visual Basic Editor. AddInProject2 est créé par défaut.
  2. Dans l'Explorateur de projets, faites glisser la nouvelle interface du concepteur Add-In Designer (AddInDesigner1) dans votre projet de complément existant. Ce projet contient alors deux concepteurs.
  3. Dans l'Explorateur de projets, cliquez avec le bouton droit sur AddInProject2, puis cliquez sur Fermer le projet pour supprimer le projet que vous venez de créer.
  4. Lorsque le message suivant
    Le projet AddInProject2 a été modifié. Souhaitez-vous l'enregistrer ?
    ou un message semblable s'affiche, cliquez sur Non.
  5. Modifiez les propriétés du concepteur pour spécifier Word 10 comme application cible et pour effectuer un chargement au Démarrage.
  6. Ajoutez le code suivant à la procédure d'événement AddinInstance_OnConnection du nouveau concepteur de Microsoft Word ; ce code est identique à celui écrit précédemment pour l'événement OnConnection du concepteur de Microsoft Excel :
    gstrUserName = Application.UserName
    DisplayForm
    					

Débogage du complément

  1. Si vous le préférez, vous pouvez ajouter des points d'arrêt appropriés au code.
  2. Dans le menu Exécution de Visual Basic Editor, cliquez sur Exécuter le projet pour exécuter le complément.
  3. Démarrez Microsoft Excel. Lorsque le projet démarre, une boîte de dialogue peut s'afficher pour le concepteur Add-In Designer. Cliquez sur l'option permettant de démarrer une application et naviguez jusqu'au fichier Excel.exe. Si cette boîte de dialogue n'apparaît pas, cliquez sur Démarrer, pointez sur Programmes, puis cliquez sur Microsoft Excel pour démarrer Excel. Votre feuille UserForm devrait apparaître.
  4. Si le Gestionnaire de compléments COM n'est pas déjà disponible, ajoutez la commande Compléments COM à une barre d'outils en procédant comme suit :
    1. Dans le menu Outils, cliquez sur Personnaliser.
    2. Dans la boîte de dialogue Personnaliser, sous l'onglet Commandes, faites glisser la commande Compléments COM de la catégorie Outils sur une barre d'outils ou sur l'objet CommandBarPopup du menu Outils.
  5. Cliquez sur la barre de commandes Compléments COM pour afficher le Gestionnaire de compléments COM. La liste affichée dans le Gestionnaire répertorie tous les compléments chargés.
  6. Pour tester l'événement OnConnection, désactivez la case à cocher du complément Welcome dans le Gestionnaire de compléments COM, puis cliquez sur OK. Affichez à nouveau le Gestionnaire de compléments COM, activez la case à cocher Welcome, puis cliquez sur OK. La feuille UserForm devrait s'afficher à nouveau.
  7. Fermez l'application hôte (Word ou Excel), puis cliquez sur Arrêter le projet dans le menu Exécution de Visual Basic Editor pour arrêter l'exécution du projet.

Vérification du fonctionnement du complément

Vous pouvez maintenant compiler le complément et vérifier qu'il fonctionne sur un autre ordinateur.
  1. Enregistrez le projet dans Visual Basic Editor. Il s'agit de la version modifiable. La forme compilée ne permet pas d'apporter des modifications.
  2. Dans le menu Fichier, cliquez sur Créer Welcome.DLL.
  3. Utilisez la commande regsvr32 pour enregistrer le fichier DLL comme suit :
    1. Dans le menu Démarrer de Windows, cliquez sur Exécuter.
    2. Dans la zone de texte Ouvrir, tapez la ligne suivante :
      regsvr32 <chemin>\Welcome.DLL
      où <chemin> est le chemin d'accès du système de fichiers au fichier DLL.
  4. Cliquez sur Oui pour confirmer l'inscription du fichier DLL au Registre.
  5. Exécutez Excel et/ou Word. Votre feuille UserForm devrait apparaître. Si vous ne la voyez pas, cliquez sur Compléments COM dans le menu Outils, puis activez la case à cocher Welcome.
REMARQUE : la méthode la plus simple pour distribuer le fichier DLL consiste à utiliser l'Assistant Empaquetage et déploiement.

Résolution des problèmes

  • Veillez à ce que votre code soit court et efficace afin de faciliter le chargement du complément en mémoire. Par exemple, si votre événement OnConnection manipule des données d'une base de données au démarrage, vos utilisateurs penseront que l'ordinateur a cessé de répondre (s'est bloqué).
  • Utilisez les feuilles UserForm avec précaution. Si l'utilisateur clique dans l'application hôte, il peut penser qu'il a perdu la feuille car celle-ci est cachée derrière l'application hôte. Pour éviter ce problème, créez des feuilles modales. Pour ce faire, utilisez la constante vbModal comme suit :
    frmMyUserForm.Show vbModal
    						
    Pour voir où ce code se place dans le contexte de cet exemple, consultez le code de l'étape 12 de la section Création d'un projet de complément.

Références

Pour obtenir un modèle de complément, reportez-vous au dossier \Samples\Working with AddIns\VBA_COM_AddIn du CD-ROM Office XP Developer.

Pour plus d'informations sur la création de boutons CommandBar, reportez-vous au site Web MSDN à l'adresse suivante (en anglais) :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/modcore/html/deovrCreatingCommandBar.asp
Pour plus d'informations sur la façon de concevoir un complément Outlook, reportez-vous au MSDN Code Center sur le site Web MSDN à l'adresse suivante (en anglais) :
http://msdn.microsoft.com/code/default.asp?url=/msdn-files/026/000/118/massmail_design_htm.asp

Propriétés

Numéro d'article: 306130 - Dernière mise à jour: mardi 4 décembre 2007 - Version: 4.2
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Office XP Developer
  • Microsoft Office XP Professional
Mots-clés : 
kbhowtomaster KB306130
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com