28.09.2020, 20:06
Hallo Stefan,
ich dachte schon, Du liest die Antworten gar nicht.
Ich habe meine Antwort in ein Codebeispiel übersetzt, und als Kommentar eingefügt.
Vielleicht funktioniert das ja bei Deiner Datei. Die kenne ich nicht, also kann ich es nicht versprechen.
Ich glaube nicht, das der uns bei Deiner Aufgabe helfen kann.
Gruß
Koter
ich dachte schon, Du liest die Antworten gar nicht.
(28.09.2020, 11:01)Sfassbender schrieb: den Ansatz mit "isOnshape" habe ich gesucht. Leider funktioniert mein kleines Skript nur bei einer kleinen Musterdatei.
Ich habe meine Antwort in ein Codebeispiel übersetzt, und als Kommentar eingefügt.
Vielleicht funktioniert das ja bei Deiner Datei. Die kenne ich nicht, also kann ich es nicht versprechen.
Code:
Sub Ellipsenkiller()
Dim s As Shape, spattern As Shape
Dim srhole As New ShapeRange
Dim x As Integer
Set spattern = ActivePage.Shapes(1)
For Each s In ActivePage.Shapes.AllExcluding(Array(1))
'indem Du alle Ellipsenmittelpunkte mit IsOnShape auf die Lage in der selektierten Kontur abklopfst:
x = spattern.IsOnShape(s.CenterX, s.CenterY)
If x > 0 Then
'diese mit IntersectsWith auf Überschneidungen mit derselben prüfst:
If s.DisplayCurve.IntersectsWith(spattern.DisplayCurve) Then
srhole.Add s 'die entsprechenden Ellipsen einer Range zuordnest
End If
Else
srhole.Add s 'die entsprechenden Ellipsen einer Range zuordnest
End If
Next
srhole.Delete 'und diese löschst,
End Sub
(28.09.2020, 11:01)Sfassbender schrieb: ...Ich hab ein bisschen mit ActiveDocument.ReferencePoint rumgespielt (da ich davon echt keine Ahnung hab) und erhalte unterschiedliche Ergebnisse. Leider nicht die richtigen. Hast du dazu einen Tipp für mich?Der ReferencePoint entspricht dem Objektursprung, den Du ganz links auf der Eigenschaftsleiste findest.
Ich glaube nicht, das der uns bei Deiner Aufgabe helfen kann.
Gruß
Koter