Я использую CorelDraw X7. У меня есть страница, содержащая много фигур, и я хочу создать макрос, чтобы изменить ее, чтобы ограничивающий прямоугольник всех фигур (самый маленький, содержащий их все) имел общую границу заданного размера. Я могу найти размер ограничивающего прямоугольника и попытался использовать подпрограмму ActiveSelection.AlignAndDistribute для перемещения фигур, но у этой подпрограммы много параметров, которые я не понимаю (помощь мне не помогает).
Моя идея такова:
- Укажите границу, скажем, pgBorder.
- Получите ширину и высоту ограничивающего прямоугольника, скажем, shpsWidth и shpsHeight.
- Переместите фигуры так, чтобы нижний левый угол нового ограничивающего прямоугольника имел координаты (pgBorder, pgBorder).
- Сбросьте размер страницы до shpsWidth + 2 * pgBorder соответственно. shpHeight + 2 * pgBorder.
Прямоугольник, ограничивающий фигуру, теперь должен быть окружен рамкой размером pgBorder.
Это то, что у меня есть до сих пор:
Sub GivePageCommonBorder()
Dim pgBorder As Double, shpsWidth As Double, shpsHeight As Double
Dim doc As Document
Dim pg As Page
Set doc = ActiveDocument
doc.Unit = cdrMillimeter
pgBorder = 20
Set pg = doc.ActivePage
' Select all shapes on the page
pg.Shapes.All.CreateSelection
shpsWidth = ActiveSelection.SizeWidth
shpsHeight = ActiveSelection.SizeHeight
' This is what I am lacking:
' Move the selection so its lower left corner has coordinates (pgBorder,pgBorder)
' Adjust page size
pg.SizeWidth = shpsWidth + 2 * pgBorder
pg.SizeHeight = shpsHeight + 2 * pgBorder
End Sub
С наилучшими пожеланиями Хольгер