Признаться, не люблю Corel Draw. Но вынужден иногда в этой программе работать. И здесь, как никогда, требуется обработка напильником. Вот скрипт, написанный на днях, который поворачивает каждый из выделенных объектов на 180 градусов. Заметьте: каждый по отдельности. Все скопом можно легко повернуть, выделив их и введя новый угол в соответствующее поле на панели, но в этом случае они будут вращаться относительно общей оси. Стандартного способа повернуть объекты каждый вокруг своего центра, не сдвигая их, я не нашел. Возможно, плохо искал, тем не менее скрипт.

' Поворот выделенных объектов по отдельности на 180 градусов

Sub Rotate180()
Dim sh As Shape
Dim centerX As Double, centerY As Double

' Перебираем все shape в выделении
For Each sh In ActiveSelection.Shapes
    With sh

        ' Ищем центральную точку, вокруг которой будем вращать
        centerY = (.TopY - .BottomY) / 2 + .BottomY
        centerX = (.RightX - .LeftX) / 2 + .LeftX

        ' Вращаем
        .RotateEx 180, centerX, centerY

    End With
Next

End Sub

Не забывайте про возможность поиграть с группировкой. Если при повороте нужно сохранить положение нескольких фигур относительно друг друга, их можно сгруппировать, и только потом поворачивать. Или вернуться к полю ввода угла, — как вам удобнее.

Также читайте всю серию постов по VBA.

  

1 комментарий на «VBA.CorelDraw: Как повернуть кучу фигур»

Оставить комментарий