Создание направляющих вдоль границ документа в макросе Corel PHOTO-PAINT

Макрос для создания направляющих вдоль границ документа ускоряет работу, когда требуется ограничить рабочее пространство документа привязкой к направляющим.

Для создания направляющих в макросах Corel PHOTO-PAINT доступна функция CreateGuide(). Первый параметр функции – элемент перечисления pntGuideType, который определяет положение направляющей:

  • pntGuideHorizontal – определяет горизонтальное положение направляющей;
  • pntGuideVertical – определяет вертикальное положение направляющей.

Второй и третий параметры – координаты X и Y точки, через которую проходит направляющая.

Предлагаю рассмотреть два варианта кода макросов:

  1. Направляющие совпадают с границами документа;
  2. Направляющие отстают от границ документа на заданную величину.

Направляющие совпадают с границами документа

Для удачного выполнения макроса в Corel PHOTO-PAINT должен быть открыть документ. Иначе, макрос завершится с ошибкой.

Sub CreateGuidesAroundPage()
    Dim doc As Document
    Set doc = Application.ActiveDocument
    doc.CreateGuide pntGuideHorizontal, 0, 0
    doc.CreateGuide pntGuideVertical, doc.SizeWidth, 0
    doc.CreateGuide pntGuideHorizontal, doc.SizeWidth, doc.SizeHeight
    doc.CreateGuide pntGuideVertical, 0, doc.SizeHeight
End Sub

В этом и следующем примерах я использую координаты точек, совпадающие с углами документа, делая обход по часовой стрелке, начиная с левого верхнего угла. Использовать координаты углов не обязательно, можно задать координаты любой точки, лежащей на границе документа.

Направляющие отстают от границ документа на заданную величину

Я усложнил этот пример, добавлением проверки существования активного документа в Corel PHOTO-PAINT.

Величина отступа направляющих от границ документа задана в переменной offset. Не смотря на то, что величина отступа - положительное число, направляющие создаются внутри границ документа, а не за их пределами.

Sub CreateGuidesAroundPageWithOffset()
    Dim doc As Document
    Dim offset As Integer
    If Application.Documents.Count > 0 Then
        Set doc = Application.ActiveDocument
        offset = 10
        doc.CreateGuide pntGuideHorizontal, offset, offset
        doc.CreateGuide pntGuideVertical, doc.SizeWidth - offset, offset
        doc.CreateGuide pntGuideHorizontal, doc.SizeWidth - offset, doc.SizeHeight - offset
        doc.CreateGuide pntGuideVertical, offset, doc.SizeHeight - offset
    Else
        Exit Sub
    End If
End Sub

Для универсализации макроса путём задания значения переменной offset вручную, можно добавить в макрос вызов формы с соответсвующим полем.

Приведённые примеры макросов можно использовать напрямую, или как отправную точку для создания собственных, например, для автоматизированного создания сеток из направляющих.