кто-бы смог доработать до ума макрос?
02/12/2008 13:18:03
#Link
Дела такое. Массив баркодов создается в отдельнйо проге, и после некоторой доработки. Мы имеем в кореле в слое "Рабочий стол" несколько сот совершенно одинаковых Шейпов, который приходися в ручную выравнивать по страницами.
Для нескольких тысяч дисконток такая операция вручную слишком нудная.
Корел может сделать скрипт, но этот скрипт обрабатывает конкретные страницы в конкретном файле... т.е. пока его закончишь - работа уже выполнена и скрипт можно выбрасывать
Вот примерно как он выглядит:
Sub Macro1()
'
' Recorded 02.12.2008
'
' Description:
'
'
ActivePage.Shapes.All.AlignToShape cdrAlignRight, ActiveDocument.MasterPage.DesktopLayer.Shapes(1), cdrTextAlignBoundingBox
Dim p1 As Page
Set p1 = ActiveDocument.InsertPagesEx(1, False, ActivePage.Index, 3.346457, 2.125984)
p1.Shapes.All.AlignToShape cdrAlignRight, ActiveDocument.MasterPage.DesktopLayer.Shapes(1), cdrTextAlignBoundingBox
Dim p2 As Page
Set p2 = ActiveDocument.InsertPagesEx(1, False, p1.Index, 3.346457, 2.125984)
p2.Shapes.All.AlignToShape cdrAlignRight, ActiveDocument.MasterPage.DesktopLayer.Shapes(1), cdrTextAlignBoundingBox
Dim p3 As Page
Set p3 = ActiveDocument.InsertPagesEx(1, False, p2.Index, 3.346457, 2.125984)
p3.Shapes.All.AlignToShape cdrAlignRight, ActiveDocument.MasterPage.DesktopLayer.Shapes(1), cdrTextAlignBoundingBox
Dim p4 As Page
Set p4 = ActiveDocument.InsertPagesEx(1, False, p3.Index, 3.346457, 2.125984)
End SubКто бы мог доработать этот скрипт, чтобы он автоматически создавал страницы. Т.е. не надо было ему тупо прописывать
Dim p5 As Page, а скрипт сам создавал страницу
p как
p(последняя)+1 и вставлял в эту созданную страницы следующйи объект?
Re: кто-бы смог доработать до ума макрос?
03/12/2008 7:32:01
#Link
ага! есть код который делает то, что мне нужно огромный респект Nikesh за это... вот что получается.
Sub Macro2()
'
' Recorded 02.12.2008
'
' Description:
'
'
ActiveDocument.Pages(1).Activate
ActivePage.Shapes.All.AlignToShape cdrAlignRight, ActiveDocument.MasterPage.DesktopLayer.Shapes(1), cdrTextAlignBoundingBox
Dim CurPage As Page
For Each element In ActiveDocument.Pages(1).Layers(1).Shapes
Set CurPage = ActiveDocument.InsertPagesEx(1, False, ActivePage.Index, 3.346457, 2.125984)
ActiveDocument.Pages(1).Activate
element.Copy
CurPage.Activate
CurPage.ActiveLayer.Paste
CurPage.Shapes.All.AlignToShape cdrAlignRight, ActiveDocument.MasterPage.DesktopLayer.Shapes(1), cdrTextAlignBoundingBox
Next
End Sub
Собственно для работы этого достаточно, с той поправкой, что надо делать некоторую подготовительную работу для его юзания...
Если у кого-то есть есть желание и умение оформить данный скрипт в виде полноценного плагина к Корелу (с функцией позволяющей задавать произвольные координаты объекта), было бы полезно в дизайнерском деле.
Re: кто-бы смог доработать до ума макрос?
03/02/2009 10:06:53
#Link
Вот, блин... всегда так. Два дня думаешь как сделать полегче. Потом не доделов до конца откладываешь до посленовогодних праздников... и в итоге забываешь как работает эта фигня.
В общем памятка для себя (полдня вспоминал)
_____________
1. создаем документ.
2. В первую страницу на пустое поле импортируем стопку баркодов в нужном порядке. Выравниваем их по горизонтали.
3. в Страницу "Рабочий стол" ставим прямоугольник, который будет вертикальным ориентром.
Запускаем скрипт.
_____________
Вопрос остается открытым. Кто сможет оформить скрипт в удобоваримом виде (*.csc)?
или хотя-бы посдскажите, как сделать, чтобы скрипт создавал страницу размером указанным в глобальных настройках, а не фиксированного размера дисконтки 86*54
Re: кто-бы смог доработать до ума макрос?
03/02/2009 13:27:19
#Link
ManYacK
Чета твой макрос вообще не работает :(
Set p1 = ActiveDocument.InsertPagesEx(1, False, ActivePage.Index, 2.362205, 1.181102)
вот такая строчка создает страничку 60х30 мм.
Итак если правильно понял тебя:
вбей руками нужный размер странички
настройки save settings as default.
запиши новый макрос и перепиши из него в основной последние значения
тогда страничка будет не как визитка созаваться
Re: кто-бы смог доработать до ума макрос?
04/02/2009 8:14:09
#Link
у меня вот так работает:
Тут исходная компановка. Задан размер страниц (он-же в скрипте задается)
И направляющий прямоугольник выложин на отдельный слой.
А вот тут результат. Кроме того, скрипт в первой странице оставляет все исходные баркоды стопкой, и их копии по сраницам разбрасывает.
Просто надо удалить первую станицу - если она не нужна.
Re: кто-бы смог доработать до ума макрос?
19/07/2012 13:16:06
#Link
Господа, оказывается мой макрос работает только в 13-м кореле...
А теперь я решил переехать в X6.
И надежный макрос, который верой и правдой служил мне долгие годы не пашет.
Помогите пожалуйста, как заставить действовать в 16-к кореле?
Очень полезная штучка, можно сказать жизненно необходимый... количество дисконток пронумерованных им уже давно за несколько сот тысяч перевалило... трудно представить что-бы мне пришлось пережить - делай я все вручную поштучно.
А если ему сделать активацию по кнопочке - так это будет ваще просто замечательно
Источник: https://powerclip.ru/modules/newbb/viewtopic.php?topic_id=8267&start=0