INFO : Macros complémentaires COM et macros complémentaires d'automation dans Excel

Traductions disponibles Traductions disponibles
Numéro d'article: 291392 - Voir les produits auxquels s'applique cet article
Cet article peut contenir des liens vers des informations en langue anglaise (pas encore traduites).
Agrandir tout | Réduire tout

Résumé

Microsoft Excel 2002 prend en charge des macros complémentaires d'automation en plus des macros complémentaires COM (Component Object Model). Cet article explique les différences entre ces deux types de macros complémentaires.

Plus d'informations

Macros complémentaires COM

Les macros complémentaires COM permettent aux développeurs d'étendre les fonctionnalités des applications Office 2000, Office XP et Office 2003 pour les tâches personnalisées. Les macros complémentaires COM sont utilisées en général pour automatiser Excel en réponse à un clic d'un bouton CommandBar, un formulaire ou une boîte de dialogue ou autre événement spécifique à Excel tel que l'ouverture ou la fermeture de classeurs ou l'entrée de données sur des feuilles de calcul. Les fonctions des macros complémentaires COM ne peuvent pas être appelées directement à partir de formules de cellule dans les feuilles de calcul.

Une macro complémentaire COM est un serveur COM in-process (une DLL ActiveX) qui doit implémenter l'interface IDTExensibility2. Toutes les macros complémentaires COM doivent implémenter chacune des cinq méthodes de cette interface : OnConnection, OnStartupComplete, OnAddinsUpdate, OnBeginShutDown et OnDisconnection.

Quand une macro complémentaire COM est installée sur le système d'un utilisateur, des entrées de Registre sont créées pour la macro complémentaire. Outre l'enregistrement COM normal, une macro complémentaire COM est enregistrée pour chaque application Office dans laquelle elle s'exécute. Les macros complémentaires COM utilisées par Excel sont enregistrées dans la clé de Registre suivante :
HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\Addins\ 
					
Cette clé contient une sous-clé pour chaque macro complémentaire COM installée. Le nom de la sous-clé correspond au ProgID de la macro complémentaire COM. La sous-clé d'une macro complémentaire COM contient également des valeurs qui décrivent le nom convivial, la description et le mode de chargement de la macro complémentaire COM. Le mode de chargement décrit comment la macro complémentaire est chargée dans Excel : chargée au démarrage, chargée au prochain démarrage seulement, chargée sur demande ou non chargée.

Les macros complémentaires COM peuvent également être chargées et déchargées par le biais de l'interface utilisateur d'Excel. Pour cela, procédez comme suit :
  1. Dans le menu Affichage, pointez sur Barres d'outils, puis cliquez sur Personnaliser.
  2. Dans la boîte de dialogue Barres d'outils, cliquez sur l'onglet Avancé. Dans la liste de catégories, sélectionnez Outils. Recherchez Compléments COM dans la liste de commandes et faites glisser la commande sur un menu ou CommandBar de votre choix. Fermez la boîte de dialogue Barres d'outils.
  3. Cliquez sur la commande Compléments COM que vous avez ajoutée pour afficher la boîte de dialogue Compléments COM. La boîte de dialogue répertorie toutes les macros complémentaires COM qui sont installées sur votre système et celles qui sont actuellement chargées sont sélectionnées.
Pour plus d'informations sur les compléments COM, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft.
238228 COMMENT FAIRE : Créer un complément COM Office 2000 dans Visual Basic
230689 EXEMPLE : Complément COM Comaddin.exe Office 2000 écrit dans Visual C++
Pour plus d'informations, reportez-vous au site Web de Microsoft à l'adresse suivante :
Compléments Office
http://msdn.microsoft.com/library/en-us/dnoxpta/html/vsofficedev.asp

Macros complémentaires d'automation

Outre les macros complémentaires COM, Excel 2002 et Excel 2003 prennent en charge les macros complémentaires d'automation. Les macros complémentaires d'automation sont plus évolués que les macros complémentaires COM, dans le sens où leurs fonctions peuvent être appelées à partir de formules dans des feuilles de calcul Excel. Les macros complémentaires COM doivent être des serveurs COM in-process qui prennent en charge l'interface IDTExtensibility2 ; en revanche, les macros complémentaires d'automation peuvent être des serveurs COM in-process ou out-of-process et l'implémentation d' IDTExtensibility2 est facultative.

Pour utiliser des fonctions d'une macro complémentaire d'automation dans Excel, procédez comme suit :
  1. Dans le menu Outils, cliquez sur Macros complémentaires.
  2. Dans la boîte de dialogue Macro complémentaire, cliquez sur Automatisation. Dans la liste de serveurs COM enregistrés, sélectionnez votre macro complémentaire d'automation et cliquez sur OK.
  3. La macro complémentaire d'automation apparaît dans la boîte de dialogue Macro complémentaire. Cliquez sur OK pour fermer la boîte de dialogue Macro complémentaire.
Lorsque vous ajoutez des éléments à la liste dans la boîte de dialogue Macro complémentaire ou lorsque vous sélectionnez et effacez des macros complémentaires de la liste, Excel stocke vos modifications dans le Registre. Tout d'abord, Excel utilise le paramètre de Registre suivant pour déterminer si une macro complémentaire d'automation de la liste de macros complémentaires est chargée :
 Excel 2002
Clé :                 HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Excel\Options
Chaîne :              OPENx
Exemple de valeur :   /A "ServerName.ClassName"
					
 Excel 2003
Clé :                 HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Options
Chaîne :              OPENx
Exemple de valeur :   /A "ServerName.ClassName"
					
Le commutateur /A utilisé dans la valeur de chaîne est une nouveauté dans Excel 2002 et Excel 2003. Il est utilisé spécifiquement pour charger des macros complémentaires d'automation. Toutes les macros complémentaires d'automation sont chargées sur demande ; il n'existe aucun paramètre qui permet de modifier le mode de charge d'une macro complémentaire d'automation.

Quand une macro complémentaire d'automation répertoriée dans la boîte de dialogue Macro complémentaire est effacée, une sous-clé avec un nom identique au ProgID de la macro complémentaire est créée dans la clé de Registre suivante :
Excel 2002 :
HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Excel\Add-in Manager
					Excel 2003 :

HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Add-in Manager
					
Ce paramètre de Registre garantit que les macros complémentaires d'automation que vous avez ajoutées à la liste Ma cros complémentaires sont conservées dans la liste même lorsque vous avez choisi de ne pas les charger.

Pour plus d'informations sur les macros complémentaires d'automation, consultez les articles suivants dans la Base de connaissances Microsoft :
285337 COMMENT FAIRE : Créer une macro complémentaire d'automation Visual Basic pour des fonctions de feuille de calcul Excel
Pour plus d'informations, reportez-vous au site Web de Microsoft à l'adresse suivante :
Compléments Office
lhttp://msdn.microsoft.com/library/en-us/dnoxpta/html/vsofficedev.asp

Macros complémentaires d'automation qui implémentent IDTExtensibility2

Comme mentionné précédemment, une macro complémentaire d'automation peut implémenter IDTExtensibility2, mais cela n'est pas nécessaire pour qu'Excel puisse appeler les fonctions de la macro complémentaire à partir d'une feuille de calcul. Si vous souhaitez que votre macro complémentaire d'automation obtienne une référence à l'instance Excel, vous pouvez implémenter IDTExtensibility2 et utiliser le paramètre Application de OnConnection pour automatiser Excel.

Une macro complémentaire d'automation qui implémente IDTExtensibility2 peut être chargée dans l'interface utilisateur d'Excel par le biais des boîtes de dialogue Macros complémentaires COM et Macro complémentaire. Le paragraphe suivant décrit le comportement d'une macro complémentaire d'automation selon qu'elle est chargée dans une de ces boîtes de dialogue ou dans les deux :
  • Chargée seulement dans la boîte de dialogue Macro complémentaire.

    La macro complémentaire est chargée sur demande. Les fonctions de la macro complémentaire peuvent être appelées à partir de formules dans une feuille de calcul.
  • Chargée seulement dans la boîte de dialogue Macros complémentaires COM.

    La macro complémentaire est chargée en tant que macro complémentaire COM et son mode de charge est déterminé par les paramètres du Registre. Les fonctions de la macro complémentaire ne peuvent pas être appelées à partir de formules dans une feuille de calcul.
  • Chargés à la fois dans la boîte de dialogue Macros complémentaires COM et dans la boîte de dialogue Macro complémentaire.

    Deux instances séparées de la macro complémentaire sont chargées. Une instance est chargée en tant que macro complémentaire COM et l'autre instance est chargée en tant que macro complémentaire d'automation. L'instance de macro complémentaire COM utilise le mode de charge indiqué dans le Registre ; l'instance de macro complémentaire d'automation est chargée sur demande. Les deux instances fonctionnent indépendamment l'une de l'autre et ne partagent pas de variables globales.
Les macros complémentaires d'automation étant chargées sur demande, Excel peut essayer de charger la macro complémentaire pendant qu'il est en mode d'édition de cellule. Par conséquent, quand vous développez une macro complémentaire d'automation qui prend en charge IDTExtensibility2, vous devez prendre soin de ne rien faire qui tente de modifier l'état d'Excel pendant le chargement de la macro complémentaire. Pour plus d'informations, consultez l'article suivant dans la Base de connaissances Microsoft :
284876 BOGUE : Défaillance d'Excel 2002 lors du chargement d'une macro complémentaire d'automation
(c) Microsoft Corporation 2001, Tous droits réservés. Contribution de Lori B. Turner, Microsoft Corporation.

Propriétés

Numéro d'article: 291392 - Dernière mise à jour: mardi 18 avril 2006 - Version: 4.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002
Mots-clés : 
kbautomation kbinfo KB291392
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