Нужен макрос. Авто размещение направляющих.

Версия программы: 
15.1.0.486/488/489

Доброго всем дня! Работаю оператором цифровой печати, и есть необходимость в автоматизации процесса установки направляющих. Я руками выставляю направляющие, для подготовки файла к печати. Направляющая на дозаливку (выпуск), до области с важной информацией и между ними - на край листа. По времени, конечно это не долго, макс пару минут, но несколько десятков раз в час. Да на визитки всех размеров, флаеров и то что хотя бы повторяеться раз в день я сделал шаблоны, они мне облегчели жизнь, правда их уже больше 40... Я уже не раз задумывался о одной кнопке или, по крайне мере, меньшем кликанье. Может мне кто нибудь помочь? Возможно похожий или такой уже макрос есть. Буду признателен любому отзову! За ранее спасибо.
Создал не большую анимацию (анимация 1) как я это делаю руками, возможно посмотрев её Вы скажите что макросы так не умеют... Или делайте руками, не трогайте наши голову - я все пойму...
И еще приблизительный интерфейс, мне не сильно важно в точности или такой же, надеюсь рисунок поможет понять, то, что бы я хотел от него. На рисунке (рисунок 1) сделал до 4 направляющих, конечно мне больше 1 от края не надо было, ну если это все возможно, я буду очень благодарен за помощь.

посмотрите вот это
Макрос Quick Margins
Макрос Quick Margins (новая версия)
хотя бы не руками

попробовал
допустим вам нужно создать направляющие с отступом от края 10 мм
- вызвать макрос
- задать единицы мм
- поставить галку - равные значения - Equal GiudeLines
- последовательно ввести в окне
-10 создать - Create GiudeLines
очистить - Clear Value
0 - создать
очистить
10 - создать
при желании в каждом случае дополнительно задавать цвет направляющих,
окно при этом не закрывается, пока вы его сами явно не закроете ...
явно быстрее минуты на все операции

По ссылке очень красиво, думаю это оно (то, что мне надо), но смогу проверить только на работе, к сожалению дома компьютера не имею, а в отделении почты нет корел дро. Но заранее огромное спасибо!!!

Не одно так другое, беда на работе с корелом или с бэйсиком...
Открываю Tools->Macros->Run macro: и в окне все пусто...

Побывал переустанавливать корел, 11 и 15... видимо что-то с виндой... Если кто нибудь знает напишите...

До сих пор не знаю, подходит этот макрос мне....

Значение s1.SetPosition 0#, 0# в макросе

Спойлер
Sub Macros_Napr()
' Recorded 12.06.2013
'
' Description:
' napravl
Dim s1 As Shape
Set s1 = ActiveDocument.MasterPage.GuidesLayer.CreateGuideAngle(0#, 0#, 90#)
s1.Outline.SetProperties Color:=CreateRGBColor(0, 0, 255)
ActiveDocument.ReferencePoint = cdrCenter
s1.SetPosition -3#, 0#
Dim s2 As Shape
Set s2 = ActiveDocument.MasterPage.GuidesLayer.CreateGuideAngle(0#, 0#, 90#)
s2.Outline.SetProperties Color:=CreateRGBColor(0, 0, 255)
s2.SetPosition 0#, 0#
Dim s3 As Shape
Set s3 = ActiveDocument.MasterPage.GuidesLayer.CreateGuideAngle(0#, 0#, 90#)
s3.Outline.SetProperties Color:=CreateRGBColor(0, 0, 255)
Windows.FindWindow("Безымянный-1").ActiveView.SetViewPoint 0#, 0#, 200
s3.SetPosition 3#, 0#
End Sub

можно привязать к границе листа? (допустим не -3 inches а -3 inches от края листа правого или левого, не зависимо от размера листа) и можно ли работать не в inches, а в мм?

Hepatitis C, используй менджер объектной модели - F2. Избавит от многих вопросов.
У страницы есть координаты сторон, например ActivePage.LeftX
Единицы измерения ActiveDocument.Unit, можно поставить их как = ActiveDocument.Rulers.HUnits.

П.С, На всякий случай, посмотри в настройки Options > Document > Guidelines > Presets

Sancho,в вкладке присэты что-то похожее есть, их можно настроить как то?
скриншот с CorelDRAW x6 16.3.0.1114

Писал что-то подобное для себя (см. прикрепленный файл). Думаю сообразите как установить GMS-файл.
Расставляет указанные направляющие от края листа (не зависимо от его размера) со всех сторон.
Имеет несколько предустановленных режимов и один произвольный AreaArbitrarily - указываете нужные значения через точку с запитой.
Код открытый, так что при желании можете допилить под свои нужды.
Затем можете вытянуть кнопку на тулбар и все поставит в один клик.

Aeliot, оооо - это божественный макрос!!! именно для моих потребностей - то, что нужно! огромное спасибо! и код для таких как я, нубов, с коментами открыл и изменил - 5 балов.

На старой системе и в старом 15 кореле макрос работал а теперь... Скачал, загрузил через диспетчер макросов, выбрал один и нажал изменить, изменил все значение координат в комментариях и в коде на свои (вместо 0 поставил значение -2) и изменил имя. Макрос не хочет запускаться. Выдаёт ошибку. Неактивный в диалоговом окне «запустить макрос». Стандартные макросы работают. Подскажите этот макрос

Файлы: Макрос расстановки направляющих. - gruidlines.gms

может работать в
CorelDRAW x6 Версия 16.1.0.843
Microsoft Windows XP
Professional
версия 2002
Servis Pack 3
Версия 5.1.2600 Servis pack 3 Сборка 2600

код макроса после изменения
Public Sub border203()
    ' Recorded 30.12.2012
    '
    ' Description:
    '     Макрос расстановки направляющих:
    '     -2 мм, 0 мм, 3 мм - с каждой стороны
    
    Dim dblSteps#()
    Dim intStepCount%
    Dim putGdlns As clsPutGuidLines
    Dim varStep As Variant
    Dim varSteps() As Variant
    
    ' задаем массив направляющий (от края к центру)
    varSteps() = Array(-2#, 0#, 3#)
    
    ' инициируем переменную
    intStepCount = 0
    
    ' обходим строковый массив расстояний и передаем корректные данные
    For Each varStep In varSteps()
        ReDim Preserve dblSteps#(intStepCount)
        dblSteps(intStepCount) = CDbl(varStep)
        intStepCount = intStepCount + 1
    Next varStep
    
    ' получаем экземпляр класса
    Set putGdlns = New clsPutGuidLines
    
    ' расставляем направляющие
    Call putGdlns.PutGuidLinesCommandGroup(dblSteps())
    
    ' удаляем ссылку на экземпляр класса
    Set putGdlns = Nothing
End Sub

Public Sub border203()
    ' Recorded 30.12.2012
    '
    ' Description:
    '     Макрос расстановки направляющих
    '     -2 мм, 0 мм, 3 мм - с каждой стороны
    
    Dim dblSteps#()
    Dim intStepCount%
    Dim putGdlns As clsPutGuidLines
    Dim varStep As Variant
    Dim varSteps() As Variant
    
    ' задаем массив направляющий (от края к центру)
    varSteps() = Array(-2#, 0#, 3#)
    
    ' инициируем переменную
    intStepCount = 0
    
    ' обходим строковый массив расстояний и передаем корректные данные
    For Each varStep In varSteps()
        ReDim Preserve dblSteps#(intStepCount)
        dblSteps(intStepCount) = CDbl(varStep)
        intStepCount = intStepCount + 1
    Next varStep
    
    ' получаем экземпляр класса
    Set putGdlns = New clsPutGuidLines
    
    ' расставляем направляющие
    Call putGdlns.PutGuidLinesCommandGroup(dblSteps())
    
    ' удаляем ссылку на экземпляр класса
    Set putGdlns = Nothing
End Sub

Public Sub AreaSm5()
    ' Recorded 30.12.2012
    '
    ' Description:
    '     Макрос расстановки направляющих
    '     -2 см, 0 см, 3 см - с каждой стороны
    
    Dim dblSteps#()
    Dim intStepCount%
    Dim putGdlns As clsPutGuidLines
    Dim varStep As Variant
    Dim varSteps() As Variant
    
    ' задаем массив направляющий (от края к центру)
    varSteps() = Array(-2#, 0#, 3#)
    
    ' инициируем переменную
    intStepCount = 0
    
    ' обходим строковый массив расстояний и передаем корректные данные
    For Each varStep In varSteps()
        ReDim Preserve dblSteps#(intStepCount)
        dblSteps(intStepCount) = CDbl(varStep)
        intStepCount = intStepCount + 1
    Next varStep
    
    ' получаем экземпляр класса
    Set putGdlns = New clsPutGuidLines
    
    ' расставляем направляющие
    Call putGdlns.PutGuidLinesCommandGroup(dblSteps())
    
    ' удаляем ссылку на экземпляр класса
    Set putGdlns = Nothing
End Sub

Public Sub AreaArbitrarily()
    ' Recorded 30.12.2012
    '
    ' Description:
    '     Макрос расстановки направляющих в произвольном месте
    '     с каждой стороны. Указывать в мм через точку с запятой (;).
    
    Dim dblSteps#()
    Dim intStepCount%
    Dim putGdlns As clsPutGuidLines
    Dim strStepsLine As String
    Dim strSteps() As String
    Dim varStep As Variant
    
    ' задаем запрос
    strStepsLine = InputBox("Укажите расположение направляющих через точку с запятой, " _
                        & "в миллиметрах." & vbCrLf & vbCr _
                        & "Например: -2;0;3" & vbCrLf & vbCr _
                        & "Направляющие будут расставлены со всех сторон страницы." _
                        , "Произвольное расположение направляющих")
    
    ' проверка полученных данных
    If (strStepsLine = "") Then
        MsgBox "Вы ни чего не указали. Выполнение команды не возможно." _
                , vbExclamation, "Произвольное расположение направляющих"
        Exit Sub
    End If
    
    ' инициируем переменную
    intStepCount = 0
    
    ' получаем строковый массив расстояний
    strSteps() = Split(strStepsLine, ";")
    
    ' обходим строковый массив расстояний и передаём корректные данные
    For Each varStep In strSteps()
        If Not IsNull(varStep) Then
            If Not (varStep = "") Then
                ReDim Preserve dblSteps#(intStepCount)
                dblSteps(intStepCount) = CDbl(varStep)
                intStepCount = intStepCount + 1
            End If
        End If
    Next varStep
    
    ' получаем экземпляр класса
    Set putGdlns = New clsPutGuidLines
    
    ' расставляем направляющие
    Call putGdlns.PutGuidLinesCommandGroup(dblSteps())
    
    ' удаляем ссылку на экземпляр класса
    Set putGdlns = Nothing
End Sub

Страницы