CommandBars in Excel Aus- und Einblenden
Schritt-für-Schritt-Anleitung
Um die Arbeitsblatt-Menüleiste in Excel über VBA auszublenden und wieder einzublenden, kannst Du folgenden Code verwenden:
Private Sub Workbook_Open()
Application.CommandBars("Worksheet Menu Bar").Enabled = False
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars("Worksheet Menu Bar").Enabled = True
End Sub
Dieser Code stellt sicher, dass die Menüleiste beim Öffnen der Arbeitsmappe ausgeblendet und beim Schließen wieder eingeblendet wird.
Häufige Fehler und Lösungen
Ein häufiger Fehler, auf den Du stoßen kannst, ist die Fehlermeldung: "Methode oder Datenobjekt nicht gefunden." Dies geschieht oft, wenn Du einen Tippfehler im Namen der CommandBar hast. Achte darauf, dass der Name exakt übereinstimmt:
Application.CommandBars("Worksheet Menu Bar").Enabled = True
Stelle sicher, dass "Worksheet Menu Bar" korrekt geschrieben ist.
Ein weiterer Fehler könnte auftreten, wenn Du versuchst, eine nicht existierende benutzerdefinierte Symbolleiste auszublenden. Verwende hier On Error Resume Next, um Fehler zu überspringen:
On Error Resume Next
Application.CommandBars("Sport1").Enabled = False
On Error GoTo 0
Alternative Methoden
Statt die Menüleiste beim Öffnen und Schließen der Arbeitsmappe zu steuern, kannst Du auch die Ereignisse Workbook_Activate und Workbook_Deactivate verwenden. Dies sorgt dafür, dass die Menüleiste nur ausgeblendet wird, wenn die Arbeitsmappe aktiv ist:
Private Sub Workbook_Activate()
Application.CommandBars("Worksheet Menu Bar").Enabled = False
End Sub
Private Sub Workbook_Deactivate()
Application.CommandBars("Worksheet Menu Bar").Enabled = True
End Sub
Diese Methode ist besonders nützlich, wenn Du mehrere Arbeitsmappen offen hast und nur bei Deiner Arbeitsmappe die Menüleiste steuern möchtest.
Praktische Beispiele
In einer erweiterten Version Deines Codes könntest Du auch alle anderen CommandBars ausblenden. Hier ein Beispiel:
Private Sub Workbook_Open()
Dim cb As CommandBar
For Each cb In Application.CommandBars
If cb.Type = msoBarTypeMenuBar Then
cb.Visible = False
End If
Next cb
Application.CommandBars("Worksheet Menu Bar").Enabled = False
End Sub
Dieses Skript blendet alle Menüleisten aus und sorgt dafür, dass die Worksheet Menu Bar deaktiviert bleibt.
Tipps für Profis
- Fehlerbehandlung: Nutze
On Error Resume Next sorgfältig, um Fehler zu überspringen, ohne den Code zu unterbrechen.
- Variablen verwenden: Halte Deinen Code übersichtlich, indem Du Variablen für CommandBars einsetzt. Das verbessert die Lesbarkeit.
- Benutzerdefinierte Symbolleisten: Achte darauf, dass benutzerdefinierte Symbolleisten existieren, bevor Du Versuche unternimmst, sie auszublenden oder zu löschen.
FAQ: Häufige Fragen
1. Wie kann ich die Menüleiste dauerhaft ausblenden?
Um die Menüleiste dauerhaft auszublenden, kannst Du den entsprechenden Code im Workbook_Open-Ereignis platzieren.
2. Was mache ich, wenn die CommandBar nicht existiert?
Verwende On Error Resume Next, um sicherzustellen, dass der Code weiterläuft, auch wenn eine CommandBar nicht gefunden wird.
3. Funktioniert dieser Code in allen Excel-Versionen?
Ja, dieser VBA-Code sollte in den meisten Excel-Versionen funktionieren, die die Application.CommandBars-Methode unterstützen. Achte jedoch darauf, dass die Benutzeroberfläche in neueren Versionen variieren kann.