Excel VBA: Arbeitsblätter ausblenden und einblenden (Tutorial)
Hier ist ein umfassendes Tutorial, wie du in Excel mit VBA Arbeitsblätter (Worksheets) ein- und ausblenden kannst – von den Grundlagen bis hin zum Profi-Modus „Very Hidden“.
In Excel gibt es mehr Möglichkeiten, Blätter zu verstecken, als nur den Rechtsklick auf den Reiter. Mit VBA kannst du diesen Prozess automatisieren und sogar Blätter so verstecken, dass ein normaler Benutzer sie nicht einfach wieder einblenden kann.
1. Die drei Status der Sichtbarkeit
Bevor wir starten, musst du wissen, dass es in VBA drei Zustände für die Eigenschaft .Visible gibt:
xlSheetVisible(-1): Das Blatt ist ganz normal sichtbar.xlSheetHidden(0): Das Blatt ist ausgeblendet (kann per Rechtsklick vom Benutzer wieder eingeblendet werden).xlSheetVeryHidden(2): Das Blatt ist "sehr tief" versteckt. Es taucht nicht im "Einblenden"-Menü von Excel auf. Es kann nur über VBA wieder sichtbar gemacht werden.
2. Ein Blatt ausblenden (Einfach)
Um ein bestimmtes Arbeitsblatt auszublenden, nutzt du diesen Code:
Sub BlattAusblenden()
' Das Blatt mit dem Namen "Tabelle2" wird normal ausgeblendet
Sheets("Tabelle2").Visible = xlSheetHidden
End Sub
3. Ein Blatt "Very Hidden" machen (Sicher)
Dies ist nützlich für Hilfstabellen oder Berechnungen, die der Endnutzer nicht sehen oder verändern soll.
Sub BlattSehrSicherAusblenden()
' Dieses Blatt kann NICHT über die Excel-Oberfläche eingeblendet werden
Sheets("Setup").Visible = xlSheetVeryHidden
End Sub
4. Ein Blatt wieder einblenden
Egal ob es Hidden oder VeryHidden war, so machst du es wieder sichtbar:
Sub BlattEinblenden()
Sheets("Tabelle2").Visible = xlSheetVisible
End Sub
5. Praxis-Beispiel: Alle Blätter außer dem aktiven ausblenden
Ein häufiger Anwendungsfall ist, dass man alle Tabellen bis auf eine einzige verstecken möchte. Hinweis: Excel erzwingt, dass immer mindestens ein Blatt sichtbar bleibt.
Sub AlleAusserAktiveAusblenden()
Dim ws As Worksheet
Dim aktuelleTabelle As String
aktuelleTabelle = ActiveSheet.Name
' Schleife durch alle Blätter der Arbeitsmappe
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> aktuelleTabelle Then
ws.Visible = xlSheetHidden
End If
Next ws
End Sub
6. Praxis-Beispiel: Alle Blätter auf einmal einblenden
Wenn du viele versteckte Blätter hast, ist es mühsam, jedes einzeln per Hand einzublenden. VBA erledigt das in Millisekunden:
Sub AlleEinblenden()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Visible = xlSheetVisible
Next ws
End Sub
7. Schritt-für-Schritt: So baust du den Code ein
- Öffne deine Excel-Datei.
- Drücke
ALT+F11, um den VBA-Editor zu öffnen. - Gehe im Menü auf Einfügen -> Modul.
- Kopiere einen der oben genannten Codes in das weiße Fenster.
- Schließe den Editor.
- Du kannst das Makro nun über
ALT+F8ausführen oder es einer Schaltfläche (Einfügen -> Illustrationen -> Formen) zuweisen.
8. Wichtige Tipps & Fallstricke
- Fehlermeldung vermeiden: Wenn du versuchst, alle Arbeitsblätter einer Mappe auszublenden, wird VBA einen Fehler ausgeben. Es muss immer ein Blatt sichtbar sein (
xlSheetVisible). - Blattschutz: Wenn die Struktur der Arbeitsmappe geschützt ist (Überprüfen -> Arbeitsmappe schützen), kann VBA die Sichtbarkeit nicht ändern. Du musst den Schutz erst mit
ThisWorkbook.Unprotect "DeinPasswort"aufheben. - Speichern: Vergiss nicht, deine Datei als Excel Arbeitsmappe mit Makros (.xlsm) zu speichern, sonst gehen deine VBA-Codes beim Schließen verloren!
Bonus: Umschalter (Toggle)
Hier ist ein praktischer Code, der ein Blatt einblendet, wenn es versteckt ist, und ausblendet, wenn es sichtbar ist:
Sub ToggleBlattSichtbarkeit()
With Sheets("Tabelle2")
If .Visible = xlSheetVisible Then
.Visible = xlSheetHidden
Else
.Visible = xlSheetVisible
End If
End With
End Sub