- Сообщения
- 2 171
- Реакции
- 2 092
Ну, в общем, баг понятен. При программном вынимании объекта/объектов из группы с помощью 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
Последнее редактирование: