업체 목록을 엑셀로 정리해야 할 때가 있습니다. "○○시 카페", "○○구 철물점" 같은 식으로 지역과 업종을 넣고 상호, 주소, 전화번호를 쭉 뽑아 영업 리스트나 DM 발송용 주소록을 만드는 일이죠. 지도 앱에서 하나씩 복사해 붙이면 몇십 건만 넘어가도 손목이 아픕니다. 그래서 네이버 검색 API 로 결과를 한꺼번에 가져오고, 우체국 API 로 우편번호까지 붙여서 엑셀 시트로 바로 넘기는 추가 기능을 VB.NET VSTO 로 만들었습니다.
설치
받은 설치 파일을 더블클릭하면 VSTO 설치 창이 뜹니다.

"설치(I)" 버튼을 누르면 진행됩니다.

완료 메시지가 나오면 "닫기"로 끝냅니다.

VSTO 추가 기능은 .NET Framework 와 VSTO 런타임이 PC 에 있어야 돌아갑니다. 회사 PC 처럼 설치 권한이 막힌 환경에서는 이 단계에서 실패할 수 있으니, 그럴 땐 관리자 권한으로 다시 실행해 보는 게 먼저입니다.
엑셀에서 키 넣고 검색하기
설치 후 엑셀을 열면 됩니다.

리본의 "추가 기능" 탭에 "검색하기" 버튼이 생겨 있습니다. 눌러서 프로그램 창을 띄웁니다.

처음 한 번은 네이버 검색 API 의 "Client ID" 와 "Client Secret" 을 넣어야 합니다. 발급 방법은 /community/board/free/164 글에 따로 적어 두었습니다. 입력 후 "Save" 를 눌러 저장하면 다음부터는 다시 넣지 않아도 됩니다. 키는 개인 계정에 묶인 값이니 남에게 프로그램을 넘길 때 같이 넘어가지 않도록 신경 쓰세요.

이제 "지역"과 "검색어"를 넣고 검색 버튼을 누릅니다.

결과는 금방 리스트에 채워집니다.

우편번호는 우체국 API 로 따로 붙입니다
네이버 검색 결과에는 우편번호가 없어서, 우체국 비즈니스 사이트에서 발급받은 "epost key" 를 넣고 리스트에서 마우스 오른쪽 버튼 → "우편번호 검색"을 실행합니다. 주소를 하나씩 우체국 쪽에 물어보는 방식이라 건수가 많으면 조금 기다려야 합니다.

진행 중에는 이런 상태가 보입니다.

끝나면 각 행에 우편번호가 채워집니다.

시트로 내보낼 때 막히는 지점
리스트에서 마우스 오른쪽 버튼 → "Excel로 Data 이동"을 누르면 엑셀로 옮겨집니다.

그런데 처음에는 시트를 확인하라는 메시지가 뜰 수 있습니다. 어느 시트에 넣을지 아직 정해지지 않아서 그렇습니다. 엑셀에서 내보낼 시트를 먼저 선택해 두고, 프로그램 창으로 돌아와 같은 메뉴를 다시 누르면 됩니다.

정상적으로 들어간 모습입니다.

하나 눈에 띄는 게 있는데, 우편번호가 0 으로 시작하면 앞의 0 이 사라집니다. 엑셀이 다섯 자리 숫자로 보고 숫자 형식으로 바꿔 버리기 때문입니다. 서울 쪽 주소에서 자주 보입니다. 해당 열을 미리 텍스트 서식으로 바꿔 두거나, 이미 들어간 값이라면 사용자 지정 서식 00000 을 걸어 다섯 자리로 보이게 하면 됩니다. 라벨 인쇄나 DM 업체에 넘길 파일이라면 텍스트 서식 쪽이 안전합니다.