[CDR 2023] Как грамотно вытащить объекты из группы.

  • Автор темы Автор темы DukereD
  • Дата начала Дата начала
Ну, в общем, баг понятен. При программном вынимании объекта/объектов из группы с помощью MoveToLayer или OrderFrontOf корел не отслеживает качество самой группы и допускает появление групп с одним или нулём объектов, а при Undo начинает сходить с ума. Поэтому будем работать через Group-Ungroup:
Код:
Sub ex()
'тут можем проверить, что выделенные объекты находятся в группе
  Dim sr As ShapeRange, sel As ShapeRange
  Set sel = ActiveSelectionRange
  ActiveDocument.BeginCommandGroup "Extract shapes from Group"
  While Not sel(1).ParentGroup Is Nothing
    Set sr = sel(1).ParentGroup.Shapes.All
    sr.RemoveRange sel
    sel(1).ParentGroup.Ungroup
    If sr.Shapes.Count > 1 Then sr.Group
  Wend
  'Тут можем перекинуть выделенные объекты на передний план, сгруппировать уже только их и т.п.
  ActiveDocument.EndCommandGroup
End Sub
У меня работает и, пока, не барахлит
 
Последнее редактирование:
  • Спасибо
Реакции: DukereD