Programmgesteuerter Zugriff auf Office VBA-Projekt wird verweigert

Gilt für
Office Products Excel 2010

Symptome

Code, der geschrieben wurde, um eine Office-Anwendung zu automatisieren und die Umgebung und das Objektmodell von Microsoft Visual Basic for Applications (VBA) programmgesteuert zu bearbeiten, schlägt unter Office möglicherweise mit einer der folgenden Fehlermeldungen fehl:

 Über Visual Basic oder VBA:

Hinweis

Laufzeitfehler '6068': Programmgesteuerter Zugriff auf Visual Basic-Projekt nicht vertrauenswürdig

Über Microsoft Visual C++, Microsoft Foundation Classes (MFC) oder ActiveX Template Library (ATL):

Hinweis

HRESULT = 0x800A17B4 (-2146822220) "Programmgesteuerter Zugriff auf ein Visual Basic-Projekt nicht vertrauenswürdig"

Derselbe Code funktioniert ohne Fehler auf Computern mit Office 97 und Office 2000.

Ursache

Office fügt eine Sicherheitsoption hinzu, um den programmgesteuerten Zugriff auf das VBA-Objektmodell für jeden Automatisierungsclient absichtlich zu sperren, es sei denn, ein Benutzer lässt diesen Zugriff zu. Auf diese benutzer- und anwendungsabhängige Einstellung kann standardmäßig nicht zugegriffen werden.

 Diese Sicherheitsoption erschwert es nicht autorisierten Programmen, "selbstreplizierenden" Code zu erstellen, der bei Endbenutzersystemen Schaden anrichten kann.

Lösung

Damit ein Automatisierungsclient programmgesteuert auf das VBA-Objektmodell zugreifen kann, muss ihm der den Code ausführende Benutzer explizit Zugriff gewähren. Um den Zugriff zu aktivieren, muss der Benutzer die folgenden Schritte ausführen.

Office 2003 und Office XP

  1. Öffnen Sie die betreffende Office 2003- oder Office XP-Anwendung. Klicken Sie im Menü "Extras" auf "Makro", und klicken Sie dann auf "Sicherheit", um das Dialogfeld "Makrosicherheit" zu öffnen.
  2. Aktivieren Sie auf der Registerkarte "Vertrauenswürdige Quellen" das Kontrollkästchen "Zugriff auf Visual Basic Project vertrauen", um den Zugriff zu aktivieren.
  3. Klicken Sie auf "OK", um die Einstellung anzuwenden. Möglicherweise müssen Sie die Anwendung neu starten, damit der Code ordnungsgemäß ausgeführt wird, wenn Sie über ein COM-Add-In (Component Object Model) oder eine COM-Vorlage automatisieren.

Office 2007

  1. Öffnen Sie die betreffende 2007 Microsoft Office System-Anwendung. Klicken Sie auf die Microsoft Office-Schaltfläche und anschließend auf
    Anwendungsoptionen.
  2. Klicken Sie auf die Registerkarte "Trust Center " und anschließend auf
    Einstellungen für das Trust Center.
  3. Klicken Sie auf die Registerkarte "Makroeinstellungen", aktivieren Sie das Kontrollkästchen "Zugriff auf das VBA-Projektobjektmodell vertrauen", und klicken Sie dann auf "OK".
  4. Klicken Sie auf OK.