28.09.2020, 11:01
Hallo,
schon mal vielen Dank für die Antworten.
@norre
Manuell löse ich das ganze im Moment über die Formen - Schnittmenge. Ja, die angeschnittenen muss ich auch hier einzeln löschen.
@Koter
den Ansatz mit "isOnshape" habe ich gesucht. Leider funktioniert mein kleines Skript nur bei einer kleinen Musterdatei.
Dabei ist die Kurve, ausserhalb der ich die anderen Elemente löschen will immer shape(1).
Teil 1 Case cdrOnMarginOfShape funktioniert eigentlich sehr gut.
Nur Case cdrOutsideShape bekomme ich nicht hin.
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?
Liebe Grüsse,
Stefan
schon mal vielen Dank für die Antworten.
@norre
Manuell löse ich das ganze im Moment über die Formen - Schnittmenge. Ja, die angeschnittenen muss ich auch hier einzeln löschen.
@Koter
den Ansatz mit "isOnshape" habe ich gesucht. Leider funktioniert mein kleines Skript nur bei einer kleinen Musterdatei.
Code:
Sub Test1()
Dim spattern As Shape
Dim srhole As New ShapeRange
Dim x As Double, y As Double
Dim s As LongLong
'ActiveDocument.ReferencePoint = 9
Set spattern = ActivePage.Shapes(1)
spattern.ConvertToCurves
For s = ActivePage.Shapes.Count To 2 Step -1
ActivePage.Shapes(s).GetPosition x, y
Select Case spattern.IsOnShape(x, y, 0.02)
Case cdrOnMarginOfShape
srhole.Add ActivePage.Shapes(s)
End Select
Select Case spattern.IsOnShape(x, y)
Case cdrOutsideShape
srhole.Add ActivePage.Shapes(s)
End Select
Next
srhole.Delete
End Sub
Dabei ist die Kurve, ausserhalb der ich die anderen Elemente löschen will immer shape(1).
Teil 1 Case cdrOnMarginOfShape funktioniert eigentlich sehr gut.
Nur Case cdrOutsideShape bekomme ich nicht hin.
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?
Liebe Grüsse,
Stefan