wie kann ich prüfen ob ein shape mit bekanntem namen vorhande ist?
ciao
atikar
Function fcnShapeThere(strShapeName As String) As Boolean
' Prüft ob das angegebene Shape im aktiven Blatt vorhanden ist
Dim lngHelp As Long
On Error Resume Next
lngHelp = ActiveSheet.Shapes(strShapeName).Width
If Err.Number <> 0 Then
fcnShapeThere = False
Else
fcnShapeThere = True
End If
On Error GoTo 0
End Function
Sub test()
MsgBox fcnShapeThere("Rechteck 1")
End Sub
Sub ttt()
Dim my As Shapes, i As Integer
Set my = Sheets("Tabelle1").Shapes
For i = 1 To my.Count
'MsgBox my.Range(i).Name
If my.Range(i).Name = "Rectangle 4" Then MsgBox "ja" Else MsgBox "nein"
Next i
End Sub
Um zu prüfen, ob ein Shape (z.B. ein Rechteck oder eine Grafik) in Excel vorhanden ist, kannst du eine benutzerdefinierte Funktion in VBA verwenden. Folge diesen Schritten:
Öffne Excel und drücke ALT + F11
, um den VBA-Editor zu öffnen.
Klicke auf Einfügen
> Modul
, um ein neues Modul zu erstellen.
Füge den folgenden Code ein:
Function fcnShapeThere(strShapeName As String) As Boolean
' Prüft ob das angegebene Shape im aktiven Blatt vorhanden ist
Dim lngHelp As Long
On Error Resume Next
lngHelp = ActiveSheet.Shapes(strShapeName).Width
If Err.Number <> 0 Then
fcnShapeThere = False
Else
fcnShapeThere = True
End If
On Error GoTo 0
End Function
Um die Funktion zu testen, füge diesen Testcode in das Modul ein:
Sub test()
MsgBox fcnShapeThere("Rechteck 1")
End Sub
Schließe den VBA-Editor und gehe zurück zu Excel. Führe das Makro test
aus, um zu sehen, ob das Shape vorhanden ist.
Fehler: "Run-time error '91'"
Dies passiert, wenn der Shape-Name falsch ist oder das Shape nicht vorhanden ist. Überprüfe den Namen des Shapes auf Tippfehler.
Lösung: Stelle sicher, dass der Name des Shapes genau mit dem in Excel übereinstimmt, einschließlich Groß- und Kleinschreibung.
Eine andere Möglichkeit, Shapes zu überprüfen, ist die Verwendung einer Schleife:
Sub ttt()
Dim my As Shapes, i As Integer
Set my = Sheets("Tabelle1").Shapes
For i = 1 To my.Count
If my.Range(i).Name = "Rectangle 4" Then
MsgBox "ja"
Else
MsgBox "nein"
End If
Next i
End Sub
Diese Methode ermöglicht es dir, alle Shapes auf einem bestimmten Blatt zu durchlaufen und zu überprüfen, ob ein bestimmtes Shape vorhanden ist.
Hier sind einige praktische Anwendungsbeispiele:
Überprüfen eines bestimmten Shapes: Verwende die Funktion fcnShapeThere
in einem Makro, um verschiedene Shapes auf einem Arbeitsblatt zu überprüfen und entsprechende Aktionen auszuführen.
Erstellen von Bedingungen: Kombiniere die Funktion mit einer If-Abfrage, um bestimmte Aktionen nur dann auszuführen, wenn das Shape vorhanden ist.
Namen von Shapes konsistent halten: Achte darauf, dass du die Namen deiner Shapes konsistent verwendest, um Verwirrung zu vermeiden.
Fehlerbehandlung: Nutze die On Error
-Anweisungen, um dein Skript robuster zu machen und unerwartete Fehler elegant zu handhaben.
Dokumentation: Halte deine VBA-Funktionen gut dokumentiert, damit andere (oder du selbst) später leicht verstehen, was jede Funktion macht.
1. Wie finde ich den genauen Namen eines Shapes?
Du kannst den Namen eines Shapes direkt in der Excel-Oberfläche im Auswahlbereich sehen oder den Namen in der Formelleiste auswählen.
2. Kann ich diese Methode auch für andere Objekte verwenden?
Ja, die grundlegenden Prinzipien lassen sich auch auf andere Objekte in Excel anwenden, die über die Shapes-Sammlung zugänglich sind.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen