Shapes in Excel deaktivieren und löschen
Schritt-für-Schritt-Anleitung
- Öffne den Visual Basic-Editor: Drücke
ALT + F11
in Excel, um den Editor zu öffnen.
- Füge ein neues Modul hinzu: Klicke im Projektfenster mit der rechten Maustaste auf "VBAProject (DeinDateiname)" und wähle "Einfügen" > "Modul".
-
Kopiere den folgenden VBA-Code in das Modul:
Sub shapesLoeschen()
Dim sh As Shape
For Each sh In ActiveSheet.Shapes
If sh.AutoShapeType = msoShapeNotPrimitive Then
sh.Delete
End If
Next sh
End Sub
- Schließe den Visual Basic-Editor und kehre zurück zu deinem Excel-Arbeitsblatt.
- Führe das Makro aus: Drücke
ALT + F8
, wähle shapesLoeschen
aus der Liste und klicke auf "Ausführen".
Dieser Code löscht alle Freihandanmerkungen, die du auf deinem Arbeitsblatt erstellt hast.
Häufige Fehler und Lösungen
-
Laufzeitfehler 424: Objekt erforderlich: Dieser Fehler tritt häufig auf, wenn das Objekt, das du ansprechen möchtest, nicht existiert. Stelle sicher, dass du das richtige Arbeitsblatt ausgewählt hast und dass Formen vorhanden sind.
-
Shapes werden nicht gelöscht: Überprüfe, ob der Typ der Shapes korrekt identifiziert wird. Manchmal können andere Shapes im Weg sein. Nutze den Debugger, um die Typen der Shapes anzuzeigen.
Alternative Methoden
Eine andere Methode, um spezifische Shapes zu löschen, ist die Verwendung des Type
-Attributs. Hier ist ein Beispiel:
Sub loescheSpecificShapes()
Dim i As Long
For i = ActiveSheet.Shapes.Count To 1 Step -1
If ActiveSheet.Shapes(i).Type = msoFreeform Then
ActiveSheet.Shapes(i).Delete
End If
Next i
End Sub
Dieser Code löscht nur Freihandformen.
Praktische Beispiele
Angenommen, du hast eine Tabelle mit verschiedenen Shapes, darunter auch Freihandanmerkungen. Mit dem obigen Code kannst du gezielt nur die Freihandanmerkungen löschen, ohne andere Buttons oder Bilder zu entfernen.
Tipps für Profis
-
Verwende Option Explicit
: Füge Option Explicit
zu Beginn deines Codes hinzu, um sicherzustellen, dass alle Variablen deklariert sind. Das hilft dir, Fehler zu vermeiden.
-
Teste deinen Code schrittweise: Nutze den Debugger, um deinen Code Schritt für Schritt auszuführen, damit du genau siehst, wo mögliche Fehler auftreten.
FAQ: Häufige Fragen
1. Was mache ich, wenn der Code nicht funktioniert?
Überprüfe, ob die Shapes, die du löschen möchtest, tatsächlich auf dem aktiven Arbeitsblatt vorhanden sind. Manchmal kann es sein, dass du das falsche Arbeitsblatt ausgewählt hast.
2. Kann ich den Code anpassen, um nur bestimmte Shapes zu löschen?
Ja, du kannst die Bedingungen im Code anpassen, um nur Shapes mit bestimmten Namen oder Typen zu löschen. Verwende dazu die If
-Anweisung im VBA-Code.
3. Funktioniert dieser Code auch in anderen Excel-Versionen?
Ja, der VBA-Code sollte in den meisten Excel-Versionen funktionieren, die VBA unterstützen, einschließlich Excel 2010 und neuer.