본문 바로가기

Autohotkey강좌

Autohotkey #26, 여러 엑셀을 하나로 취합하기, Merge from multiple excels to one excel file

youtu.be/4eKNnRHdWUs ( 소리 수정된 동영상 )

 

youtu.be/RKFOz78sqco ( 예전 동영상 - 소리가 작음)

여러 회사의 막내들이 주로 하는 일중에 부서별 데이터 취합 업무가 많습니다. 꼭 필요한 작업이지만, 실수도 하기 쉽고, 시간도 제법 걸리다 보니 주로 신입사원들이 많이 하는 일입니다. 이런 일을 하는데 필요한 작업을 하려고 합니다.

 예를 들어 부서별로 사무용품을 취합해서 한번에 구매하기 위해 부서별로 필요한 용품 리스트를 요청한 상태입니다. 그것을 취합하려면 매번 해당 부서에서 온 엑셀을 열어서 복사한 다음, 결과 파일에 해당 복사 내용을 붙여 넣어야 합니다 하다 보면 어디까지 작업했는지도 헷갈리고, 빼먹기도 하고 더 넣기도 합니다. 그런 일을 방지하기 위해서는 실수가 없도록 script를 만드는게 필요합니다.

  우선 GUI를 구성해야겠습니다. 입력할 엑셀 파일들이 어느 폴더에 존재하는지 지정해 줄 변수등을 저장해야겠구요. 결과로 저장할 파일은 어디에 있는지 지정해야겠죠. 이후에 실제로 취합을 하라고 명령을 내리면 그에 맞는 동작을 하면 됩니다. GUI는 아래와 같이 구성했습니다.

 

다음으로는 Select Folder와 Select File에 대한 버튼 처리입니다.

단순히 함수만 불러주면 모든게 끝납니다

다음으로는 오늘의 하이라이트인 Merge버튼에 대한 처리입니다. 여기서 중요한 것은 엑셀별로 별도로 Com object로 처리한다는 것입니다. 물론 어떤 예제에서는 하나의 object로 처리하는 경우도 있던데, 여기서는 개별로 여는 것으로 진행했습니다 특히나 첫줄은 title로 간주하고 마지막줄은 합계로 간주한 결과 취합되는 내용이 2행부터 (마지막 -1)행까지만 취합되므로 사용에 주의하시기 바랍니다. 기본적으로는 입력 엑셀의 내용을 2행부터 복사해서 결과 파일에 그대로 집어 넣는 방식입니다. 일부 범위가 달라질 경우 수정해서 사용하시기 바랍니다.

 자세한 내용은 첨부한 파일에서 확인하시기 바랍니다.

mergeExcel.ahk
0.00MB
mergeExcel.exe
1.06MB