Kurzfassung —
ws.Visible = xlSheetHiddenblendet ein Blatt aus;xlSheetVisiblezeigt es wieder an. Es gibt einen dritten Zustand,xlSheetVeryHidden, der das Blatt aus dem Dialog Einblenden entfernt, sodass nur Code oder der VBA-Editor es zurückholen können. Alle drei ändern, was der Benutzer sieht, nicht was das Blatt ist: Ein ausgeblendetes Blatt rechnet weiter, beliefert weiter jede Formel, die darauf zeigt, und ist aus dem Code vollständig lesbar und beschreibbar. Excel weigert sich, das letzte sichtbare Blatt auszublenden (Fehler 1004), und Sie können ein ausgeblendetes Blatt nicht perSelectauswählen — das müssen Sie aber auch nie. Blenden Sie Blätter aus, um eine Arbeitsmappe aufzuräumen; muss der Inhalt geheim bleiben, gehört er nicht in die Datei.
Sub HideHelperSheets()
With ThisWorkbook
.Worksheets("Lookups").Visible = xlSheetHidden ' Benutzer kann per Rechtsklick einblenden
.Worksheets("Config").Visible = xlSheetVeryHidden ' nicht im Dialog Einblenden aufgefuehrt
End With
End Sub
Dies ist der zweite Teil einer dreiteiligen Reihe über die Identität eines Blatts. Der Registername ist eine
Beschriftung, die dem Benutzer gehört. Umbenennen ändert diese Beschriftung,
Ausblenden, um das es hier geht, nimmt das Register vom Bildschirm, ohne das Blatt unerreichbar zu
machen, und prüfen, ob ein Blatt existiert fragt, ob eine Beschriftung
vergeben ist. Der rote Faden durch alle drei: Die Blattregister sind eine Ansicht der Sheets-Sammlung.
Ausblenden bearbeitet die Ansicht; die Sammlung ändert sich nicht.
Was Sie lernen
- Das Denkmodell: Ausblenden bearbeitet die Ansicht, nicht die Arbeitsmappe
- Die drei
Visible-Zustände und was jeder erlaubt - Die zwei Fehler: das letzte sichtbare Blatt und das Auswählen eines ausgeblendeten Blatts
- Mit ausgeblendeten Blättern arbeiten, ohne sie je anzuzeigen
- Alle Blätter in einer Schleife einblenden und alle bis auf eines ausblenden
- Warum weder ausgeblendet noch sehr ausgeblendet Sicherheit ist und was Sie stattdessen tun
Das Denkmodell: Ausblenden bearbeitet die Ansicht
Die Blätter einer Arbeitsmappe leben in der Sheets-Sammlung. Die Registerleiste unten ist eine Ansicht
dieser Sammlung, und Ausblenden entfernt ein Register aus der Ansicht — sonst nichts. Das Blatt behält
seinen Platz in der Sammlung, seinen Index, seinen Namen, seine Formeln und seine Daten. Also:
- Eine Formel wie
=Lookups!B2funktioniert weiter, wennLookupsausgeblendet ist. Worksheets.Countzählt es weiterhin mit, undWorksheets(2)kann durchaus ein ausgeblendetes Blatt sein.- Eine For-Each-Schleife über
Worksheetsbesucht es. - Code kann seine Zellen genauso lesen und schreiben wie vorher.
Deshalb ist Ausblenden das richtige Werkzeug für Hilfsblätter — Nachschlagetabellen, Konfiguration, Zwischendaten — und das falsche für alles, was Sie schützen müssen. Es ist die Blatt-Variante des Ausblendens von Spalten: null Anzeige, volle Präsenz.
Die drei Visible-Zustände
Visible nimmt eine von drei XlSheetVisibility-Konstanten an:
| Konstante | Wert | Register angezeigt | Im Dialog Einblenden | Wer es wieder anzeigen kann |
|---|---|---|---|---|
xlSheetVisible |
-1 | ja | — | — |
xlSheetHidden |
0 | nein | ja | jeder, per Rechtsklick > Einblenden |
xlSheetVeryHidden |
2 | nein | nein | Code oder das Eigenschaftenfenster des VBA-Editors |
ws.Visible = False funktioniert ebenfalls und bedeutet xlSheetHidden, schreiben Sie aber die Konstanten:
True und False können den dritten Zustand nicht ausdrücken, und Leser sollten sich nicht merken müssen,
dass False gleich 0 ist.
Sehr ausgeblendet ist der nützliche Zustand für Werkzeuge, die Sie bauen. Der Benutzer sieht das Blatt nie in der Liste, blendet Ihre Konfiguration also nicht aus Neugier ein und bearbeitet sie versehentlich. Um den Zustand ohne Code zu setzen, markieren Sie das Blatt im Projekt-Explorer des VBA-Editors und ändern Visible im Eigenschaftenfenster.
Die zwei Fehler, auf die Sie stoßen werden
Das letzte sichtbare Blatt ausblenden. Eine Arbeitsmappe muss immer mindestens ein Blatt anzeigen. Das einzige sichtbare auszublenden löst den Laufzeitfehler 1004 aus, Unable to set the Visible property of the Worksheet class. Sehr ausgeblendete und ausgeblendete Blätter zählen nicht, eine Arbeitsmappe mit einem sichtbaren und zehn ausgeblendeten Blättern weigert sich also trotzdem. Wenn Sie Blätter in einer Schleife ausblenden, sorgen Sie dafür, dass das Blatt, das sichtbar bleiben soll, vor Beginn der Schleife sichtbar ist.
Ein ausgeblendetes Blatt auswählen. Worksheets("Lookups").Select löst auf einem ausgeblendeten Blatt
Fehler 1004 aus. Dasselbe gilt für das Auswählen eines Bereichs darauf. Die Lösung ist nicht, es zuerst
einzublenden — sondern gar nicht erst auszuwählen:
' Falsch: ein ausgeblendetes Blatt auswaehlen, um hineinzuschreiben
' Worksheets("Lookups").Select
' Range("A1").Value = "Aktualisiert"
' Richtig: ueber eine Referenz schreiben; das Blatt bleibt ausgeblendet
ThisWorkbook.Worksheets("Lookups").Range("A1").Value = "Aktualisiert"
Die Anleitung zu Select und Activate erklärt, warum das auch auf sichtbaren
Blättern die bessere Gewohnheit ist. Es gibt einen dritten, selteneren Fehler: Ist die Struktur der
Arbeitsmappe geschützt, schlägt jede Änderung an der Visible-Eigenschaft eines Blatts fehl, bis Sie
Unprotect auf der Arbeitsmappe aufrufen.
Alle Blätter einblenden oder alle bis auf eines ausblenden
Der Dialog Einblenden kann nur Blätter anzeigen, die xlSheetHidden sind. Um alles zurückzuholen,
sehr ausgeblendete Blätter eingeschlossen, durchlaufen Sie die Sheets-Sammlung — Sheets, nicht
Worksheets, damit auch Diagrammblätter zurückkommen:
Sub UnhideAllSheets()
Dim sh As Object
For Each sh In ThisWorkbook.Sheets
sh.Visible = xlSheetVisible
Next sh
End Sub
Die Umkehrung — ein Dashboard anzeigen und alles andere ausblenden — muss die Regel vom letzten sichtbaren Blatt beachten, die Reihenfolge ist also entscheidend. Zeigen Sie zuerst das Blatt an, das bleibt, und blenden Sie dann den Rest aus:
Sub ShowOnly(keep As Worksheet)
Dim sh As Object
keep.Visible = xlSheetVisible ' zuerst, damit immer ein Blatt sichtbar ist
For Each sh In keep.Parent.Sheets
If Not sh Is keep Then sh.Visible = xlSheetVeryHidden
Next sh
keep.Activate
End Sub
keep.Parent ist die Arbeitsmappe, zu der das Blatt gehört, die Routine funktioniert also in jeder
geöffneten Arbeitsmappe, nicht nur in der, die den Code enthält.
Die Abwägung: Ausblenden ist Darstellung, keine Sicherheit
Es ist verlockend, sehr ausgeblendet als Schloss zu behandeln. Das ist es nicht. Jeder kann den VBA-Editor
mit Alt+F11 öffnen, das sehr ausgeblendete Blatt im Projekt-Explorer sehen und es wieder auf sichtbar
stellen. Das VBA-Projekt mit einem Kennwort zu sperren, schließt diese Tür für Gelegenheitsnutzer, und das
Schützen der Arbeitsmappenstruktur unterbindet Einblenden per Rechtsklick — doch die Daten stehen weiterhin
in der Datei. Jedes Werkzeug, das .xlsx-Dateien direkt liest, von Power Query bis zu einem Python-Skript,
liest jedes Blatt unabhängig von seiner Visible-Eigenschaft, und ausgeblendete Blätter reisen mit jeder
Kopie der Arbeitsmappe mit, die Sie verschicken.
Meine Regel: Ausblenden, um Unordnung zu reduzieren und Missgeschicke zu verhindern; entfernen, um Geheimnisse zu wahren. Verwenden Sie sehr ausgeblendet für Konfiguration, über die der Benutzer nicht stolpern soll, ergänzen Sie den Strukturschutz, wenn das Menü Einblenden ausgegraut sein soll, und verschicken Sie nie Gehaltstabellen, Einkaufspreise oder Zugangsdaten in einem ausgeblendeten Blatt. Darf ein Empfänger es nicht sehen, löschen Sie es aus der Kopie, die Sie verschicken — die Anleitung zum Löschen von Blättern zeigt, wie das ohne Bestätigungsabfrage geht.
Wie ExcelMaster hilft
Sichtbarkeitsfehler sind leise: ein Makro, das nur dann mit Fehler 1004 stehen bleibt, wenn der Benutzer die anderen Blätter schon ausgeblendet hat, ein Bericht, der ein ausgeblendetes Blatt auswählt und auf einem Rechner scheitert, ein „geheimes" Preisblatt, das in der Arbeitsmappe an einen Kunden hinausging.
ExcelMaster lässt Sie beschreiben, was Sie wollen — „zeige nur das Blatt Dashboard, mache die Einrichtungsblätter sehr ausgeblendet und schütze die Struktur" — und schreibt den Sichtbarkeitscode in der Reihenfolge, die nie über die Regel vom letzten sichtbaren Blatt stolpert, und arbeitet mit ausgeblendeten Blättern über Referenzen, statt sie auszuwählen.
Häufig gestellte Fragen
Wie blende ich ein Blatt mit VBA aus?
Setzen Sie seine Visible-Eigenschaft: Worksheets("Data").Visible = xlSheetHidden. Der Benutzer kann es
per Rechtsklick > Einblenden wieder einblenden. Verwenden Sie xlSheetVeryHidden, wenn das Blatt gar nicht
im Dialog Einblenden erscheinen soll, und xlSheetVisible, um es wieder anzuzeigen.
Was ist der Unterschied zwischen ausgeblendet und sehr ausgeblendet?
Ein ausgeblendetes Blatt erscheint im Dialog Einblenden, jeder Benutzer kann es also zurückholen. Ein sehr ausgeblendetes Blatt erscheint dort nicht; nur Code oder das Eigenschaftenfenster im VBA-Editor können es wieder sichtbar machen. Beide rechnen weiter, und beide sind aus dem Code vollständig zugänglich.
Wie blende ich in VBA alle Blätter ein?
Durchlaufen Sie die Sheets-Sammlung mit For Each und setzen Sie auf jedem Blatt
sh.Visible = xlSheetVisible. Das stellt auch sehr ausgeblendete Blätter und Diagrammblätter wieder her,
die der Dialog Einblenden nicht zurückholen kann.
Warum bekomme ich beim Ausblenden eines Blatts Fehler 1004?
Meistens, weil es das letzte sichtbare Blatt ist und eine Arbeitsmappe immer mindestens eines anzeigen muss. Machen Sie zuerst ein anderes Blatt sichtbar. Die andere Ursache ist eine geschützte Arbeitsmappenstruktur, die jede Änderung an der Sichtbarkeit von Blättern blockiert, bis der Schutz der Arbeitsmappe aufgehoben ist.
Kann VBA ein ausgeblendetes Blatt lesen und beschreiben?
Ja. Ausblenden entfernt nur das Register aus der Ansicht, Worksheets("Data").Range("A1").Value
funktioniert auf einem ausgeblendeten Blatt also genauso. Was scheitert, ist Select oder Activate, und
die brauchen Sie nicht: Schreiben Sie über eine Referenz, und das Blatt bleibt ausgeblendet.
Getestet in
Getestet in: Excel 365 (Windows 11), VBA 7.1 — zuletzt geprüft am 30.09.2026.
Verwandte Anleitungen: VBA Rename Sheet · VBA Check If Sheet Exists · VBA Hide Columns · VBA Worksheets · VBA Delete Sheet · VBA Protect Sheet · VBA Select and Activate · VBA For Each
