여러 산업현장에서 바코더가 다양하게 사용되고 있는데, 원하는 바코더를 만들어서 출력하려고 할 때마다 매번 하나씩 작업하기는 부담스럽고, 원하는 데이터를 엑셀로 저장했다가 바코드로 만들어서 파워포인트로 복사한 후에 출력하는 과정을 자동화해 보려고 합니다. 사실 단순한 작업인데 여러 프로그램들을 이동하면서 작업해야 하는거라서 다소 불편한 점이 잇습니다.
1) 무료 바코더 프로그램(Zint Barcode Studio)
www.sourceforge.com 에 찾아 보면 여러가지 프로그램이 있는데 여기서는 2.12.0버전을 사용하겠습니다.( https://sourceforge.net/projects/zint/ ) 다운로드한 후에 압축을 풀고 qtZint.exe를 실행하면 됩니다
프로그램을 실행하고 Data to Encode창에 원하는 데이터를 입력하면 위쪽에 바코드가 생성됩니다.
Symbology옆에 원하는 바코드 형태를 선택하면 원하는 바코드 형태를 선택할 수 있습니다. 여기서는 code128로 진행하겠습니다.
2) 전체 프로그램 구성
원하는 데이터가 엑셀에 저장되어 있고, 작업을 시작하려는 첫번째 셀에 커서가 가 있는 것으로 하고 Zint는 실행되어 이쓰며, 파워포인트는 빈페이지로 되어 있는 것으로 가정하겠습니다.
가) GUI구성
엑셀에서 처리할 데이터 수량을 입력으로 받고, 개별 사용자별로 Zint 프로그램에서 Data to Encode의 입력창의 위치가 다르므로 해당 위치를 마우스로 클릭했을때 좌표값(x,y)을 입력받아서 처리하겠습니다.
나) Barcode단추 눌렀을때 생성할 일 정리
a) 사용자 입력 데이터 읽어 오기
b) WHILE 처리할 수량 {
엑셀에서 데이터 읽은 후 복사하기
복사한 셀이 비어 있으면 while문 탈출
다음셀로 이동
ZINT창으로 이동
데이터 입력창 클릭
복사한 데이터 붙여 넣기
생성된 바코드 복사하기
PPT이동하기
바코드 붙여 넣기
다음페이지 생성하고 모든 객체 지우기
}
3) 실제 코드
아래와 같이 GUI구성해 줍니다.
Gui, Add, Text, x20 y24 w500 h50, 1) PowerPoint 첫화면에 아무 객체 없이 비워두고, `r`n2) 만들려는 바코드 리스트의 첫째 셀을 Excel에서 선택해 놓고,`r`n3) ZINT 프로그램을 실행하여 화면 좌상단에 붙여 놓은 후에 실행하세요
Gui, Add, Text, x20 y84 w120 h20, 만들 수량
Gui, Add, Edit, x140 y80 w50 h20 vNum, 40
Gui, Add, Text, x20 y114 w120 h20, X좌표
Gui, Add, Edit, x140 y110 w50 h20 vX, 400
Gui, Add, Text, x220 y114 w120 h20, Y좌표
Gui, Add, Edit, x340 y110 w50 h20 vY, 435
Gui, Add, Button, x210 y80 w120 h20, Barcode ;
다음으로 Barcode버튼을 눌렀을때 처리할 일을 ButtonBarcode에 구현합니다.
ButtonBarcode:
{
Gui, Submit, nohide
while n < Num
{
winactivate, ahk_exe Excel.exe
SLEEP, 500
Send, {CTRLDOWN}c{CTRLUP}
Sleep, 100
if ( Clipboard = A_Space or Clipboard = "" or Clipboard = "`r`n" )
{
break
}
Send {down}
Sleep, 100
WinWait, Zint Barcode Studio,
IfWinNotActive, Zint Barcode Studio, , WinActivate, Zint Barcode Studio,
WinWaitActive, Zint Barcode Studio,
Sleep, 100
MouseClick, left, %X%, %Y%
Sleep, 300
Send, {CTRLDOWN}a{CTRLUP}
Sleep, 300
Send, {DELETE}
Sleep, 300
Send, {CTRLDOWN}v{CTRLUP}
Sleep, 300
Send, {BS}
Sleep, 300
Send, {CTRLDOWN}{SHIFT DOWN}B{CTRLUP}{Shift Up}
Sleep, 300
WinActivate, ahk_exe PowerPNT.exe
Sleep, 500
Send, {CTRLDOWN}v{CTRLUP}
Sleep, 500
Send, {CTRLDOWN}m{CTRLUP}
Sleep, 300
Send, {CTRLDOWN}a{CTRLUP}
Sleep, 300
Send, {DELETE}
Sleep, 300
n +=1
}
n:=0
}
return
남은 일은 프로그램 종료를 위한 코드이니 늘 그렇듯이 작성해 주면 됩니다. 본 내용은 생략합니다.
실제 코드는 아래를 참고하세요.
실행파일만 필요한 분은 아래 파일을 사용하세요.
'Autohotkey강좌' 카테고리의 다른 글
Autohotkey #53. 일정 시간마다 마우스를 클릭하기 (0) | 2024.04.04 |
---|---|
winmerge를 이용한 Excel 비교 (0) | 2023.01.20 |
BeyondCompare를 이용한 Excel비교 (2) | 2023.01.20 |
Excel 시트 비교하기 - 1 (0) | 2023.01.20 |
Autohotkey #51 , 레지스트리 읽기/쓰기 활용하여 원하는 폴더에서 Command창 열기 (0) | 2023.01.17 |