Shapes auf Diagramm löschen

Frage: Ich habe auf meinem Tabellenblatt ein Diagramm. Im Tabellenblatt UND im Diagramm habe ich Freihandformen. Wie kann ich die löschen?

Für die Freihandform im Sheet ist das Tabellenblatt der Parent für die Freihandform, für die Form im Diagramm ist es also analog das Chart. Auch ein Diagramm hat "Shapes":

Option Explicit
Sub Main()
    Dim wksSheet As Worksheet
    Dim wkbBook As Workbook
    Dim shpShape As Shape
    On Error GoTo Fin
    Set wkbBook = ThisWorkbook
    Set wksSheet = wkbBook.Sheets("Sheet1") ' adapt!!!
    With wksSheet
        For Each shpShape In .Shapes
            With shpShape
                If .Type = msoChart Then
                    If .Chart.Shapes.Count > 0 Then
                        If .Chart.Shapes.Item(1).Type = msoFreeform Then
                            .Chart.Shapes.Item(1).Delete
                        End If
                    End If
                ElseIf .Type = msoFreeform Then
                    .Delete
                End If
            End With
        Next shpShape
    End With
Fin:
    If Err.Number <> 0 Then MsgBox "Error: " & _
        Err.Number & " " & Err.Description
End Sub

Hier noch eine Beispieldatei: Sample

Beliebte Posts aus diesem Blog

Formeln - auch Array - per VBA eintragen...

Alle Dateien eines Ordners - Optional mit Unterordner

Excel -> Word in Textmarken (Bookmarks)...