Shapes in Excel ausblenden und einblenden ohne Select
Schritt-für-Schritt-Anleitung
Um Shapes in Excel über VBA auszublenden und wieder einzublenden, ohne die Select
-Methode zu verwenden, kannst Du die folgenden Makros nutzen:
- Öffne den VBA-Editor (Alt + F11).
- Füge ein neues Modul hinzu (Rechtsklick auf "VBAProject" > Einfügen > Modul).
- Kopiere den folgenden Code in das Modul:
Public Sub Aus()
ActiveSheet.Shapes.Range(Array("Ellipse 1", "Ellipse 2", "Ellipse 3", _
"Ellipse 4", "Ellipse 5", "Ellipse 6", "Ellipse 7", "Ellipse 8")).Visible = False
End Sub
Public Sub An()
ActiveSheet.Shapes.Range(Array("Ellipse 1", "Ellipse 2", "Ellipse 3", _
"Ellipse 4", "Ellipse 5", "Ellipse 6", "Ellipse 7", "Ellipse 8")).Visible = True
End Sub
- Schließe den VBA-Editor und teste die Makros, indem Du sie über die Entwicklertools ausführst.
Häufige Fehler und Lösungen
-
Fehlerhinweis: "Für die angeforderten Formen ist das Auswählen gesperrt."
- Dieser Fehler tritt auf, wenn Du versuchst, Shapes einzublenden, die durch andere Makros oder Einstellungen blockiert sind. Überprüfe, ob andere Makros aktiv sind, die möglicherweise diese Shapes beeinflussen.
-
Shapes werden nicht angezeigt, obwohl die Sichtbarkeit auf True gesetzt ist.
- Stelle sicher, dass Du die richtige
Shapes.Range
-Syntax verwendest. Vermeide die Verwendung von Select
, um die Handhabung zu erleichtern.
Alternative Methoden
Eine alternative Methode, um Shapes anzuzeigen oder auszublenden, besteht darin, die Shapes.Range
-Methode ohne die Verwendung von ActiveSheet
zu nutzen. Hier ist ein Beispiel:
Sub Aus()
ThisWorkbook.Sheets("Tabelle1").Shapes.Range(Array("Ellipse 1", "Ellipse 2")).Visible = False
End Sub
Sub An()
ThisWorkbook.Sheets("Tabelle1").Shapes.Range(Array("Ellipse 1", "Ellipse 2")).Visible = True
End Sub
Durch die Verwendung von ThisWorkbook.Sheets("Tabelle1")
kannst Du gezielt auf ein bestimmtes Arbeitsblatt zugreifen.
Praktische Beispiele
Hier sind einige praktische Beispiele, wie Du Shapes in Excel anzeigen und ausblenden kannst:
-
Um alle Shapes in einem Arbeitsblatt auszublenden:
Sub AlleShapesAusblenden()
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
shp.Visible = False
Next shp
End Sub
-
Um alle Shapes in einem Arbeitsblatt anzuzeigen:
Sub AlleShapesEinblenden()
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
shp.Visible = True
Next shp
End Sub
Diese Methoden sind nützlich, wenn Du eine große Anzahl von Shapes in Deinem Arbeitsblatt hast.
Tipps für Profis
- Verwende Variablen: Wenn Du mit vielen Shapes arbeitest, kannst Du die Shapes in einer Variablen speichern, um den Code effizienter zu gestalten.
Dim myShapes As ShapeRange
Set myShapes = ActiveSheet.Shapes.Range(Array("Ellipse 1", "Ellipse 2"))
myShapes.Visible = False ' Ausblenden
- Fehlerbehandlung: Implementiere Fehlerbehandlungen in Deinen Makros, um unerwartete Probleme zu vermeiden.
On Error Resume Next
myShapes.Visible = True ' Einblenden
On Error GoTo 0
FAQ: Häufige Fragen
1. Warum kann ich Shapes nicht einblenden?
Es kann sein, dass andere Makros oder Formatierungen die Sichtbarkeit der Shapes beeinträchtigen. Stelle sicher, dass keine anderen Makros aktiv sind, die die Shapes beeinflussen.
2. Welche Excel-Version benötige ich?
Die beschriebenen Methoden funktionieren in den meisten modernen Excel-Versionen, darunter Excel 2010 und neuer.
3. Wie kann ich spezifische Shapes auswählen?
Verwende die Shapes.Range(Array("ShapeName"))
-Methode, um spezifische Shapes anhand ihrer Namen zu steuern. Achte darauf, die genauen Namen der Shapes zu verwenden.