본문 바로가기

Autohotkey강좌

Autohotkey#52. 엑셀 데이터로 무료 바코드 만들어서 파워포인트로 출력하기:3가지 프로그램간 전환하기

반응형

https://youtu.be/aElsTFOSQRE

 

- YouTube

 

www.youtube.com

여러 산업현장에서 바코더가 다양하게 사용되고 있는데, 원하는 바코더를 만들어서 출력하려고 할 때마다 매번 하나씩 작업하기는 부담스럽고, 원하는 데이터를 엑셀로 저장했다가 바코드로 만들어서 파워포인트로 복사한 후에 출력하는 과정을 자동화해 보려고 합니다. 사실 단순한 작업인데 여러 프로그램들을 이동하면서 작업해야 하는거라서 다소 불편한 점이 잇습니다. 

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

남은 일은 프로그램 종료를 위한 코드이니 늘 그렇듯이 작성해 주면 됩니다. 본 내용은 생략합니다.

실제 코드는 아래를 참고하세요.

barcode_v0.1.ahk
0.00MB

실행파일만 필요한 분은 아래 파일을 사용하세요.

barcode_v0.1.exe
0.60MB

반응형