[CDR 2017-2021] Выделение объекта по координатам.

  • Автор темы Автор темы tohaa
  • Дата начала Дата начала

tohaa

Участник
Топикстартер
Сообщения
247
Реакции
9
Добрый день. В многостраничном документе, на каждой странице расположены объекты или текст. Как с помощью макроса выделить и удалить объекты на каждой странице. Известен габаритный размер и положение объектов. Оно постоянно.
 
ActivePage.SelectShapesFromRectangle
 
  • Спасибо
Реакции: tohaa
Известен габаритный размер и положение объектов. Оно постоянно.
Код:
For Each p in ActiveDocument
For Each s In p.Shapes.FindShapes(Query:="@centerY = {" & ys & " mm} and @centerX = {" & xs & " mm}")
                    SerRange.Add s
                Next s
SerRange.Delete
Next page
......
For Each p in ActiveDocument
                For Each s In p.Shapes.FindShapes(Query:="@height = {" & ys & " mm} and @width = {" & xs & " mm}")
                    SerRange.Add s
                Next s
                SerRange.Delete
Next page
ys и xs - соответственно или координаты положения или высота и ширина, можно и объединить критерии - поискав сперва по центру, а потом внутри найденного по габаритам
поиск будет вестись и в группах
 
Последнее редактирование:
Удаляет объекты по заданным координатам. На всех страницах.

Код:
Sub del_obj_on_pages()

Dim obj As Shape, p As Page

ActiveDocument.Unit = cdrMillimeter

For Each p In ActiveDocument.Pages

If p.Index > 0 Then

Set obj = p.SelectShapesFromRectangle(172, 19, 204, 7, True) 'https://community.coreldraw.com/sdk/api/draw/19/m/page.selectshapesfromrectangle

If obj.Shapes.Count > 0 Then obj.Delete

End If

Next p

End Sub