Ответ: Масштабирование множества объектов
Кстати может было может нет, но я давно еще сделал скрипт который повторяет последний трансформ (сделанный мышкой или через Alt-F7,Alt-F8 и т.д. докер) над любом количеством выбранных объектов. Причем показывает прогресс в статус-строке CorelDraw
1. Берем один объект, делаем ему увеличение/уменьшение/поворот/зеркало
2. Выделяем любое количество новых объектов и запускаем макрос
Код:
Sub ForEach()
Dim sr As ShapeRange, s As Shape, cnt&, i&, stat as AppStatus
Set sr = ActiveSelectionRange: cnt = sr.Count: i = 1
Optimization = True
EventsEnabled = False
ActiveDocument.SaveSettings
ActiveDocument.PreserveSelection = False
On Error Resume Next
Set stat = Application.Status: stat.BeginProgress CanAbort:=True
For Each s In sr
If s.Selectable Then s.CreateSelection: ActiveDocument.Repeat
i = i + 1: stat.Progress = i / cnt * 100
stat.SetProgressMessage "Repeating..." & Str(i) & " / " & Str(reps)
If stat.Aborted Then MsgBox "Command repeated " & Str(i) & " times": Exit For
Next
ActiveDocument.RestoreSettings
EventsEnabled = True
Optimization = False
sr.CreateSelection
ActiveWindow.ActiveView.ToFitSelection
End Sub
Можно использовать любой повторимый через Ctrl-R трансформ
Недостаток этого макроса в том, что ввиду невозможности поворять команду внутри блока BeginCommandGroup/EndCommandGroup, пришлось пожертвовать возможностью отмены для всего массива обработанных объектов. После запуска этого макроса в списке Undo остануться только последние 20-50 повторов (в зависимости от количества уровней Undo в опциях CorelDraw).
Достоинство макроса - в относительной универсальности и отсутствие вопросов к пользователю, а также высокая скорость работы благодаря использованию оптимизирующих команд