[CDR X5-X8] Макрос центровки на странице (проблема)

Slx1

Топикстартер
15 лет на форуме
Сообщения
944
Реакции
106
Коллеги, всем привет!
Суть проблемы: пытаюсь оформить простенький макрос "выделенные объекты группируются - располагаются по центру страницы - разгруппировываютя"
Пытаюсь все это дело записать родной утилитой "Записать макрос"
НЕ работает, первая группировка не отрабатывается в следствии чего все объекты центрируются по центру странице
Буду благодарен за любую помощь

вот код:
Код:
Sub CenterPAGE()
    ' Recorded 11.08.2017
    Dim OrigSelection As ShapeRange
    Set OrigSelection = ActiveSelectionRange
    Dim s1 As Shape
    Set s1 = OrigSelection.Group
    s1.AlignAndDistribute cdrAlignDistributeHAlignCenter, cdrAlignDistributeVAlignCenter, cdrAlignShapesToCenterOfPage, cdrDistributeToSelection, False, cdrTextAlignBoundingBox
    Dim grp1 As ShapeRange
    Set grp1 = s1.UngroupEx
End Sub
 

Titrex

10 лет на форуме
Сообщения
88
Реакции
39
Записал в 2017 (Х19)
Код:
Sub Macro5()
    ' Recorded 28.09.2017
    Dim s1 As Shape
    Set s1 = ActiveSelection.Group
    s1.AlignAndDistribute 3, 3, 2, 0, False, 2
    Dim grp1 As ShapeRange
    Set grp1 = s1.UngroupEx
End Sub
вроде работает... но, если выбрана одна группа, то по итогу, после центровки группа разгруппируется... по хорошему нужно делать ещё проверку и вводить условия при разгруппировки
 
  • Спасибо
Реакции: Slx1

Slx1

Топикстартер
15 лет на форуме
Сообщения
944
Реакции
106
Попробовал -- тоже работает! Спасибо!
 

lev

Модератор
20 лет на форуме
Сообщения
2 145
Реакции
2 071
Объекты могут находиться на разных слоях, группировка-разгруппировка переместит их на один слой. Я бы воспользовался функцией установки позиции. Да и макрос попроще будет.
Код:
Sub CenterP()
    ActiveSelection.SetPositionEx cdrCenter, ActivePage.CenterX, ActivePage.CenterY
End Sub
 
  • Спасибо
Реакции: Titrex и Slx1

Slx1

Топикстартер
15 лет на форуме
Сообщения
944
Реакции
106
Супер, спасибо!