Wenn ich mit VBA eine Excel-Datei, die Makros enthält , öffne, erfolgt keine Makroabfrage(bei Sicherheitsstufe Mittel).
Wie kann ich bei der Workbook.Open Methode die Makroausführung verhindern
dera
Um die Makroausführung beim Öffnen einer Excel-Datei über VBA zu verhindern, kannst du die folgenden Schritte befolgen:
Öffne den VBA-Editor:
ALT + F11
, um den VBA-Editor zu öffnen.Erstelle ein neues Modul:
VBAProject (DeineDatei.xlsx)
und wähle Einfügen > Modul
.Füge den folgenden Code ein:
Sub DateiOhneMakrosOeffnen()
On Error GoTo FehlerHandler
Application.EnableEvents = False
Workbooks.Open "Pfad\zu\DeinerDatei.xlsm" ' Hier den Pfad zur Datei anpassen
Application.EnableEvents = True
Exit Sub
FehlerHandler:
Application.EnableEvents = True
MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
End Sub
Passe den Dateipfad an:
"Pfad\zu\DeinerDatei.xlsm"
mit dem tatsächlichen Pfad deiner Datei.Führe das Makro aus:
Fehler beim Öffnen der Datei:
Makros werden trotzdem ausgeführt:
Datei > Optionen > Trust Center > Einstellungen für das Trust Center
.Anwendung stürzt ab:
Application.EnableEvents
immer wieder aktiviert wird, selbst wenn ein Fehler auftritt.Öffnen mit gedrückter Shift-Taste:
Shift
-Taste gedrückt, während du die Datei öffnest. Dies kann das Workbook_Open
-Ereignis umgehen und somit die Ausführung von Makros verhindern.Verwenden eines vertrauenswürdigen Speicherorts:
Beispiel 1: Einfache Dateiöffnung ohne Makros:
Sub OeffneDateiOhneMakros()
Application.EnableEvents = False
Workbooks.Open "C:\Beispiel\datei_mit_makros.xlsm"
Application.EnableEvents = True
End Sub
Beispiel 2: Fehlerbehandlung beim Öffnen:
Sub OeffneMitFehlerbehandlung()
On Error GoTo Fehler
Application.EnableEvents = False
Workbooks.Open "C:\Beispiel\datei_mit_makros.xlsm"
Application.EnableEvents = True
Exit Sub
Fehler:
MsgBox "Fehler beim Öffnen der Datei: " & Err.Description
Application.EnableEvents = True
End Sub
1. Kann ich die Sicherheitsstufe in Excel ändern?
Ja, du kannst die Sicherheitsstufe unter Datei > Optionen > Trust Center > Einstellungen für das Trust Center
anpassen.
2. Was passiert, wenn ich Application.EnableEvents
nicht setze?
Wenn du Application.EnableEvents
nicht deaktivierst, werden alle Ereignisse (wie Workbook_Open
) weiterhin ausgeführt, was die Ausführung von Makros ermöglicht.
3. Wie kann ich sicherstellen, dass mein Makro immer funktioniert?
Baue immer einen Fehlerhandler in dein Makro ein, um sicherzustellen, dass der Code auch bei Fehlern korrekt reagiert.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen