Anwendung von Application.CommandBars in Excel
Schritt-für-Schritt-Anleitung
Um die Application.CommandBars("Worksheet Menu Bar") in Excel zu verwenden, folge diesen Schritten:
-
Öffne den VBA-Editor:
- Drücke
ALT + F11, um den VBA-Editor zu starten.
-
Füge ein neues Modul hinzu:
- Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsm)" und wähle "Einfügen" > "Modul".
-
Gib den folgenden Code ein:
Sub DeaktiviereSpeichernUnter()
On Error Resume Next
Application.CommandBars("Worksheet Menu Bar").Controls("Datei").Controls("Speichern unter...").Enabled = False
On Error GoTo 0
End Sub
-
Führe das Makro aus:
- Drücke
F5 oder gehe zu "Ausführen" > "Sub/UserForm ausführen".
-
Überprüfe das Ergebnis:
- Gehe zurück zu Excel und schaue, ob der Menüeintrag "Speichern unter..." in der
Worksheet Menu Bar deaktiviert ist.
Häufige Fehler und Lösungen
-
Fehler: Das Menü wird nicht gefunden:
- Stelle sicher, dass Du den richtigen Namen der
Worksheet Menu Bar verwendest. Überprüfe auch, ob die Excel-Version RibbonX unterstützt.
-
Fehler: Makro funktioniert nicht:
- Überprüfe, ob die Makros aktiviert sind. Gehe zu "Datei" > "Optionen" > "Trust Center" > "Einstellungen für das Trust Center" und aktiviere die Makros.
-
Fehler: Anwendung.CommandBars nicht verfügbar:
- In neueren Excel-Versionen ist es nötig, auf RibbonX umzustellen. Verwende stattdessen die ID
idMso für integrierte Befehle.
Alternative Methoden
Falls die oben genannte Methode nicht funktioniert, kannst Du die RibbonX-Anpassung verwenden:
-
Verwende die ID für "Speichern unter":
- Anstelle der
CommandBars-Methode kannst Du die folgende Zeile nutzen:
Dim ribbon As IRibbonUI
ribbon.Invalidate
-
Verwende XML für Ribbon-Anpassungen:
- Du kannst das Ribbon anpassen, indem Du eine XML-Datei erstellst, die die gewünschten Änderungen definiert.
Praktische Beispiele
Ein einfaches Beispiel zur Deaktivierung von "Speichern unter..." in der excel worksheet menu bar:
Sub DeaktiviereBefehle()
Dim ctrl As CommandBarControl
Set ctrl = Application.CommandBars("Worksheet Menu Bar").Controls("Datei").Controls("Speichern unter...")
If Not ctrl Is Nothing Then
ctrl.Enabled = False
End If
End Sub
Dieses Skript kann in Excel 2007 und späteren Versionen eingesetzt werden, um die Funktionalität der CommandBars zu steuern.
Tipps für Profis
-
Nutze VBA-Fehlerbehandlung: Verwende On Error Resume Next, um den Code gegen Laufzeitfehler abzusichern.
-
Kennst Du die ID-MSO?: Falls Du RibbonX verwendest, ist es nützlich, die idMso-IDs zu kennen. Eine Liste der IDs findest Du in der Microsoft-Dokumentation.
-
Teste Änderungen in einer Kopie: Bevor Du Änderungen an wichtigen Dateien vornimmst, teste Deine Makros in einer Kopie der Datei.
FAQ: Häufige Fragen
1. Frage
Warum funktioniert Application.CommandBars nicht in meiner Excel-Version?
Antwort: In neueren Excel-Versionen (ab 2007) wurde das Ribbon eingeführt, und viele Funktionen der CommandBars sind nicht mehr verfügbar. Verwende stattdessen RibbonX.
2. Frage
Kann ich die Worksheet Menu Bar vollständig ausblenden?
Antwort: Das vollständige Ausblenden der Worksheet Menu Bar ist nicht möglich, aber Du kannst spezifische Befehle deaktivieren, wie im Beispiel gezeigt.