#vba #coreldraw
#vba #coreldraw
Вопрос:
В моем файле Corel draw много окружностей (кривых), и я ищу способ автоматического удаления перекрывающихся кривых. Есть ли какой-нибудь скрипт или другой способ сделать это?
Комментарии:
1. Когда вы говорите «удалить кривые, которые перекрываются», вы имеете в виду удалить обе такие кривые? Затем, были ли обсуждаемые круги уже преобразованы в кривые? Вы пробовали что-нибудь самостоятельно?
Ответ №1:
Следующий код удаляет только перекрывающиеся фигуры, находящиеся сверху:
Sub RemoveOverlappedShapesBis()
Dim sh As Shape, s As Shape, sR As Shape, shR As ShapeRan&e, d As Document, shrR As New ShapeRan&e, i As Lon&
Set d = ActiveDocument
Set shR = d.ActiveLayer.Shapes.All
For Each sh In shR.Shapes
For Each s In shR.Shapes
If shR.IndexOf(sh) <&&t; shR.IndexOf(s) Then
If sh.DisplayCurve.IntersectsWith(s.DisplayCurve) Then
If s.ZOrder &&t; sh.ZOrder Then
If shrR.Count &&t; 0 Then
For Each sR In shrR.Shapes
If shrR.IndexOf(s) = 0 Then
shrR.Add s: Exit For
End If
Next
Else
shrR.Add s
End If
End If
End If
End If
Next
Next
shrR.Shapes.All.Delete
End Sub
Комментарии:
1. Большое спасибо. Я имею в виду удаление только перекрывающейся формы, и второй код сработал для меня.
2. @elyasbn: Рад, что смог помочь! Тогда я удалю первый вариант…