Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zugriff auf VBA-Projektobjektmodell prüfen

Forumthread: Zugriff auf VBA-Projektobjektmodell prüfen

Zugriff auf VBA-Projektobjektmodell prüfen
29.05.2017 10:59:15
Michael
Hallo zusammen,
ich arbeite gerade an einem VBA-Skript, dessen Aufgabe es ist, eine Excel-Datei zu öffnen und verschiedene Plausibilitäten abzuprüfen. U.a. darf die Tabelle keine Makros enthalten.
Jetzt ist mir schon bewusst, dass zum Abprüfen, ob ein Makro vorhanden ist, der Haken bei "Zugriff auf das VBA-Projektmodell vertrauen" gesetzt sein muss. Das Programm geht aber an Kunden raus und ich habe keinen Einfluss auf die Einstellungen beim Kunden.
Was ich nun nirgendwo gefunden habe: Gibt es die Möglichkeit, dass ich per VBA prüfe, ob der Haken bei "Zugriff auf das VBA-Projektmodell vertrauen" gesetzt ist? Dann könnte ich das Abfangen und einen entsprechenden Hinweis geben.
Vielen Dank für Eure Unterstützung.
Michael
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zugriff auf VBA-Projektobjektmodell prüfen
29.05.2017 11:13:05
dirk
Hallo!
Warum öffnest Du die Datei nicht als .xlsx? Da hast Du dann keine Makros.
Gruss
Dirk aus Dubai
AW: Zugriff auf VBA-Projektobjektmodell prüfen
29.05.2017 11:25:18
Michael
Die Tabelle muss in ein Web-Portal hochgeladen werden, und die akzeptiert nur XLS-Dateien... Ja, das gibt es auch 2017 noch ;-)
AW: Zugriff auf VBA-Projektobjektmodell prüfen
29.05.2017 11:18:00
Nepumuk
Hallo,
nur wenn du Zugriff auf die Registry hast. Teste mal:
Sub prcRead() 'zugriff auf VBA-projekt vertrauen
    Dim objWSHShell As Object
    If Val(Application.Version) > 9 Then
        Set objWSHShell = CreateObject("WScript.Shell")
        MsgBox objWSHShell.RegRead("HKCU\Software\Microsoft\Office\" & _
            Application.Version & "\Excel\Security\AccessVBOM")
        Set objWSHShell = Nothing
    End If
End Sub

MsgBox "1" = Vertrauen "0" = nicht vertrauen
Gruß
Nepumuk
Anzeige
AW: Zugriff auf VBA-Projektobjektmodell prüfen
29.05.2017 11:25:58
Michael
Super. Funktioniert. Vielen Dank.
;
Anzeige
Anzeige

Infobox / Tutorial

Zugriff auf das VBA-Projektobjektmodell prüfen


Schritt-für-Schritt-Anleitung

Um zu prüfen, ob der Haken bei "Zugriff auf das VBA-Projektobjektmodell vertrauen" gesetzt ist, kannst du folgendes VBA-Skript verwenden. Dieses Skript liest den entsprechenden Wert aus der Windows-Registry aus:

Sub prcRead() 'zugriff auf VBA-projekt vertrauen
    Dim objWSHShell As Object
    If Val(Application.Version) > 9 Then
        Set objWSHShell = CreateObject("WScript.Shell")
        MsgBox objWSHShell.RegRead("HKCU\Software\Microsoft\Office\" & _
            Application.Version & "\Excel\Security\AccessVBOM")
        Set objWSHShell = Nothing
    End If
End Sub

Das Skript gibt eine MessageBox aus, die "1" für Vertrauen und "0" für nicht vertrauen anzeigt. Achte darauf, dass der Zugriff auf die Registry erlaubt ist.


Häufige Fehler und Lösungen

  1. Fehler: "Zugriff verweigert"

    • Lösung: Stelle sicher, dass du die erforderlichen Berechtigungen hast, um auf die Registry zuzugreifen. Möglicherweise musst du das Skript mit Administratorrechten ausführen.
  2. Fehler: Skript funktioniert nicht in älteren Excel-Versionen

    • Lösung: Das Skript funktioniert nur in Excel-Versionen ab 2010. Für ältere Versionen (z.B. Excel 2007) ist eine Anpassung notwendig.

Alternative Methoden

Falls du keinen Zugriff auf die Registry hast, kannst du auch die Datei als .xlsx speichern, um sicherzustellen, dass keine Makros enthalten sind. Dies ist jedoch nur eine temporäre Lösung und bietet keine wirkliche Überprüfung des VBA-Projektobjektmodells.


Praktische Beispiele

Hier ist ein Beispiel, wie du das Skript in deinem Projekt verwenden kannst:

  1. Öffne den Visual Basic-Editor in Excel (ALT + F11).
  2. Füge ein neues Modul hinzu (Rechtsklick auf "VBAProject" > "Einfügen" > "Modul").
  3. Kopiere das obenstehende Skript in das Modul.
  4. Führe das Skript aus, um den Status des Zugriffs auf das VBA-Projektobjektmodell zu überprüfen.

Tipps für Profis

  • Wenn du das VBA-Skript in einer Unternehmensumgebung verwendest, kommuniziere im Voraus mit der IT-Abteilung, um sicherzustellen, dass alle Sicherheitsrichtlinien beachtet werden.
  • Halte dein Skript sauber und dokumentiere die Verwendung von Registry-Zugriffen, um späteren Problemen vorzubeugen.

FAQ: Häufige Fragen

1. Kann ich den Zugriff auf das VBA-Projektobjektmodell programmgesteuert aktivieren? Leider ist es nicht möglich, diesen Zugriff programmgesteuert zu aktivieren. Der Benutzer muss dies manuell über die Excel-Einstellungen vornehmen.

2. Was ist der Unterschied zwischen .xls und .xlsx? Die .xls-Datei kann Makros enthalten, während die .xlsx-Datei keine Makros unterstützt. Wenn du also sicherstellen möchtest, dass keine Makros vorhanden sind, speichere die Datei als .xlsx.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige