L’accès par programme au projet Office VBA est refusé

S’applique à
Office Products Excel 2010

Symptômes

Le code écrit pour automatiser une application Office et manipuler par programme 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 :

Remarque

Erreur d’exécution « 6068 » : l’accès par programme à Visual Basic Project n’est pas approuvé

À partir de Microsoft Visual C++, Microsoft Foundation Classes (MFC) ou Bibliothèque de modèles ActiveX (ATL) :

Remarque

HRESULT = 0x800A17B4 (-2146822220) « L’accès par programme à Visual Basic Project n’est pas fiable »

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 par programme au modèle objet VBA à partir de tout client Automation, sauf si un utilisateur choisit d’autoriser cet accès. Ce paramètre s’applique par utilisateur et par application.

 Cette option de sécurité rend plus difficile pour les programmes non autorisés la génération d’un code à réplication automatique qui peut endommager les systèmes des utilisateurs.

Résolution

Pour que les clients Automation puissent accéder au modèle d’objet VBA par programme, l’utilisateur qui exécute le code doit autoriser explicitement l’accès. Pour activer l’accès, l’utilisateur doit suivre ces étapes.

Office 2003 et Office XP

  1. 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.
  2. Sous l’onglet Sources fiables, activez la case à cocher Accès approuvé à Visual Basic Project case activée pour activer l’accès.
  3. 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

  1. Ouvrez l’application Microsoft Office System 2007 en question. Cliquez sur le bouton Microsoft Office, puis sur
    Options de l’application.
  2. Cliquez sur l’onglet Centre de gestion de la confidentialité , puis sur
    Paramètres du Centre de gestion de la confidentialité.
  3. Cliquez sur l’onglet Paramètres des macros, activez la case à cocher Accès approuvé au modèle objet du projet VBA case activée, puis cliquez sur OK.
  4. Cliquez sur OK.