🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

VBA Hide Sheet in Excel — ausgeblendet, sehr ausgeblendet und warum keins davon ein Schloss ist

|

VBA Hide Sheet in Excel — ausgeblendet, sehr ausgeblendet und warum keins davon ein Schloss ist

Kurzfassung — ws.Visible = xlSheetHidden blendet ein Blatt aus; xlSheetVisible zeigt 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 per Select auswä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!B2 funktioniert weiter, wenn Lookups ausgeblendet ist.
  • Worksheets.Count zählt es weiterhin mit, und Worksheets(2) kann durchaus ein ausgeblendetes Blatt sein.
  • Eine For-Each-Schleife über Worksheets besucht 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