Symptômes
Le code écrit pour automatiser une application Office et manipuler par programmation l’environnement et le modèle objet Microsoft Visual Basic pour Applications (VBA) peut échouer sur Office avec l’un des messages d’erreur suivants : À partir de Visual Basic ou VBA :
Erreur d’exécution « 6068 » : l’accès par programmation au projet Visual Basic n’est pas approuvé
À partir Microsoft Visual C++, MFC (Microsoft Foundation Classes) ou ATL (ActiveX Template Library) :
HRESULT = 0x800A17B4 (-2146822220) « L’accès par programmation au projet Visual Basic n’est pas approuvé »
Le même code fonctionne sans erreur sur les ordinateurs avec Office 97 et Office 2000.
Cause
Office ajoute une option de sécurité pour verrouiller délibérément l’accès programmatique au modèle objet VBA à partir de n’importe quel client Automation, sauf si un utilisateur choisit d’autoriser cet accès. Il s’agit d’un paramètre par utilisateur et par application, et refuse l’accès par défaut. Cette option de sécurité rend plus difficile pour les programmes non autorisés la création d’un code « auto-réplicable » qui peut nuire aux systèmes des utilisateurs finaux.
Résolution
Pour qu’un client Automation puisse accéder au modèle objet VBA par programmation, l’utilisateur qui exécute le code doit explicitement accorder l’accès. Pour activer l’accès, l’utilisateur doit suivre ces étapes.
Office 2003 et Office XP
-
Ouvrez l’application Office 2003 ou Office XP en question. Dans le menu Outils, cliquez sur Macro, puis sur Sécurité pour ouvrir la boîte de dialogue Sécurité des macros.
-
Sous l’onglet Sources approuvées, cliquez pour sélectionner la zone Approuver l’accès au projet Visual Basic case activée pour activer l’accès.
-
Cliquez sur OK pour appliquer le paramètre. Vous devrez peut-être redémarrer l’application pour que le code s’exécute correctement si vous automatisez à partir d’un complément ou d’un modèle COM (Component Object Model).
Office 2007
-
Ouvrez l’application Microsoft Office System 2007 en question. Cliquez sur le bouton Microsoft Office, puis surOptionsde l’application.
-
Cliquez sur l’onglet Centre de gestion de la confidentialité, puis surParamètres du Centre de gestion de la confidentialité.
-
Cliquez sur l’onglet Paramètres de macro, sélectionnez la zone Approuver l’accès au modèle objet du projet VBA case activée, puis cliquez sur OK.
-
Cliquez sur OK.