저번에 학과 창립 70주년을 맞이하여 주소록을 정비할 일이 생겼습니다. 한글 2010으로 작업을 하게 되었는데요, 주소록 데이터는 엑셀 형태(혹은 RDB 형태)로 저장되어 있었죠. 필드는 크게 성함, 학번, 졸업년도, 집 주소, 사무실 주소, 집 연락처, 사무실 연락처, 메일 주소, 모바일 연락처가 있었습니다. 모든 필드가 빠짐없이 꽉꽉 채워져 있었다면 메일 머지를 통해 모든 주소록 데이터를 쉽게 한글 문서화 할수 있었겠으나, 문제는 로우마다 빠져있는 데이터가 제각각이라서 이 데이터를 가지고 그냥 메일 머지를 돌리면 주소록 전체에 듬성듬성 빈공간이 남아서 보기 흉하고 분량도 늘어난다는 것이었죠.
그래서 자료를 찾던 도중 한글2010에서 제공하는 매크로를 이용해 각 경우마다 최적의 레이아웃에 맞춰 문서를 생성해주는 코드를 작성하게 되었죠. 한 번 쓰고 버려두기에는 아까우니 함께 이용할 수 있도록 공유해보려합니다.
먼저 한글에서 스크립트 매크로를 사용하는 방법입니다. [Alt + Shift + H]를 누르거나, 메뉴에서 [도구]-[매크로]-[스크립트 매크로 정의]를 누르면 아래와 같은 창이 뜹니다.
매크로를 생성했다면, 왼쪽과 같이 스크립트 대화상자를 열어보면 직접 스크립트 코드를 편집할 수가 있죠. 물론 한글에서 기본으로 제공하는 스크립트 편집기는 매우 느리고 답답하니 외부에서 스크립트를 작성하여 여기에 붙여넣는게 편합니다. 스크립트 매크로 실행시 호출되는 함수이름(즉, 진입점이죠)은 OnScriptMacro_매크로이름() 입니다.
자, 이제 이번에 사용한 스크립트를 공유해드리지요.
스타일은 사정에 정의해두었습니다. 스타일 번호는 제일 위에서부터 바탕글은 0, YearTitle은 1, name은 2, job은 3 등이 됩니다.
코드를 실행하면 아래와 같은 문서가 자동으로 작성됩니다.
북마크가 자동으로 잡히니, 이를 바탕으로 목차는 쉽게 만들수 있지요.
한글 매크로에 쓰이는 언어는 자바스크립트이지만, 정확히는 자바스크립트의 하위집합인듯합니다. string객체의 메소드들이 일부 구현이 되어있지않고, 몇몇개의 함수는 쓸수가 없더군요. 이점만 주의하시면 자바스크립트를 이용해 반복작업을 최소화 하실수 있을 듯합니다.
[C++] 한글 두벌식 자판에서의 편집거리 (2) | 2016.12.26 |
---|---|
단어 클러스터링 프로그램 Civciv 개발기 - 편집거리와 클러스터링 알고리즘 (0) | 2016.12.17 |
PHP로 짠 형태소 분석기 프로그램을 C++로 고친 이야기 (0) | 2016.11.14 |
[PHP, MySQL] 코퍼스를 통해 관련어 추출 (0) | 2016.08.03 |
가버변환 소스코드 (0) | 2016.07.26 |
[KorpuSQL] 클릭만으로 간편하게 코퍼스 구축하기 (1) | 2016.06.18 |
댓글 영역