[b] Сразу извиняюсь если пишу не туда… Но, нужна помощь…
Нужен макрос в CorelDRAW(((
Работаю печатником пластиковых карт, и штрих-коды приходится менять в ручную в CorelDRAW X4 … Когда речь идет на десятки тысяч, очень не легко…
Искал в интернете, ничего дельного не нашел.
Примеры которые нашел, но они не работают: [/b]
(PauseTime = 5
Start = Timer
’ Call AllStartOperations
Do While Timer < Start + PauseTime
DoEvents
Loop
[i]
и вариант со Sleep 2000
Задерживает, но баркодер все равно застряёт.
Пробую пойти по другому пути.
Хочу сделать: меняю выделенный баркод, дублирую его на нужное место, меняю баркод дубля и так далее.
[/i]
Sub Macro2()
Dim OrigSelection As ShapeRange
Set OrigSelection = ActiveSelectionRange
CorelScript.OLEObjectDoVerb (0)
SendKeys “{DEL}{TAB}{DEL}+{TAB}870000100001{ENTER}{ENTER}{E NTER}”, True
Dim dup1 As ShapeRange
Set dup1 = OrigSelection.Duplicate()
dup1.Move 1.732283, 0#
CorelScript.OLEObjectDoVerb (0)
SendKeys “{DEL}{TAB}{DEL}+{TAB}870000100001{ENTER}{ENTER}{E NTER}”, True
Dim dup2 As ShapeRange
Set dup2 = dup1.Duplicate()
dup2.Move 1.732283, 0#
CorelScript.OLEObjectDoVerb (0)
SendKeys “{DEL}{TAB}{DEL}+{TAB}870000100001{ENTER}{ENTER}{E NTER}”, True
Dim dup3 As ShapeRange
Set dup3 = dup2.Duplicate()
dup3.Move 1.732283, 0#
CorelScript.OLEObjectDoVerb (0)
SendKeys “{DEL}{TAB}{DEL}+{TAB}870000100001{ENTER}{ENTER}{E NTER}”, True
End Sub
Но баркод меняется только выделенный первоначально.
wOxxOm, помоги.
wOxxOm:
нужно выделять дубль:
dup1.Move 1.732283, 0#
dup1.CreateSelection
…
В кореле делаем небольшие тиражи ~1000шт
пользуемся простеньким макросом:
Public Count
Sub AutoBarCode()
Count = 4000960# `здесь указываем стартовое значение ШК (в данном примере ЕАН-8)
Do
CorelScript.OLEObjectDoVerb (0) вызываем Bar Code Vizard SendKeys "{DEL}", True
Имитируем ввод данных с клавиатуры
Count = Count + 1
SendKeys Count, True Имитируем ввод данных с клавиатуры SendKeys "{ENTER}", True
Имитируем ввод данных с клавиатуры
SendKeys “{ENTER}”, True Имитируем ввод данных с клавиатуры SendKeys "{ENTER}", True
Имитируем ввод данных с клавиатуры
SendKeys “{TAB}”, True Переходим к следующему ШК, начало блока CorelScript.OLEObjectDoVerb (0) SendKeys "{DEL}", True Count = Count + 1 SendKeys Count, True SendKeys "{ENTER}", True SendKeys "{ENTER}", True SendKeys "{ENTER}", True
Конец блока. данный блок надо скопировать столько раз сколько у вас ШК на листе минус один.
`В данном примере идет 5 ШК
SendKeys “{TAB}”, True
CorelScript.OLEObjectDoVerb (0)
SendKeys “{DEL}”, True
Count = Count + 1
SendKeys Count, True
SendKeys “{ENTER}”, True
SendKeys “{ENTER}”, True
SendKeys “{ENTER}”, True
SendKeys “{TAB}”, True
CorelScript.OLEObjectDoVerb (0)
SendKeys “{DEL}”, True
Count = Count + 1
SendKeys Count, True
SendKeys “{ENTER}”, True
SendKeys “{ENTER}”, True
SendKeys “{ENTER}”, True
SendKeys “{TAB}”, True
CorelScript.OLEObjectDoVerb (0)
SendKeys “{DEL}”, True
Count = Count + 1
SendKeys Count, True
SendKeys “{ENTER}”, True
SendKeys “{ENTER}”, True
SendKeys “{ENTER}”, True
SendKeys “{TAB}”, True
ActiveDocument.PrintOut отправляем полученный лист на принтер Loop While MsgBox(Count, vbYesNo, "Done?") = vbYes
Здесь вывод на экран на контроль последнего кода, используется для отладки
`можно вставить Loop While (Count<число последнего ШК+1)
End Sub
Всем заранее огромное спасибо) Надеюсь найти помощь…