■주요 공공기관이나 기업에서 공유경제 실현을 위해 데이터를 공유하고 있으며, 이 데이터 공유 방법으로 Open API를 주로 이용한다. 엑셀에서 OpenAPI를 사용하는 방법을 알아보자.OpenAPI에서 제공하는 결과물은 대부분 JSON이나 XML 형태인데 여기서는 XML 형태로 제공하는 경우에 대해서만 알아본다.데이터를 가져오는 대상은 한국은행 경제통계시스템이 제공하는 핵심 경제지표로서 홈페이지에 소개된 사용법을 보면 다음과 같다.

필수적으로 사용해야 할 요청인자 항목을 포함해 URL을 구성해 요청하라는 설명이다.상기 기준을 준수하여 구성해보면 다음과 같은 형태의 요청 URL이 만들어진다.”http://ecos.bok.or.kr/api/KeyStatisticList/[인증키]/xml/kr/1/10/”당연한 이야기지만 중간에 포함된 [인증키]는 자신이 발급받은 인증키를 입력해야 한다. 실제로 저런 형태로 주소를 만들어 웹페이지에서 입력해보면 결과값이 다음과 같이 화면에 보인다.

사이트를 직접 방문해 보면 다른 정보가 있으니 먼저 방문해 대충 알아보도록 한다.
■ 개발 진행 엑셀에서 Open API를 사용하기 위해서는 엑셀의 VBA 기능을 이용해야 한다. 그리고 VBA는 엑셀의 “개발 툴” 메뉴에 포함되어 있다.그런데 이 개발툴 메뉴가 엑셀의 기본 메뉴에는 없다.개발 툴을 상단 메뉴에 추가하는 작업을 먼저 진행하자. (참고로 여기서 작업한 엑셀은 2013 버전이다.)

엑셀의 「보기」메뉴를 마우스 오른쪽 버튼으로 클릭하고 「리본 메뉴 사용자 지정」을 선택한다.

좌측 “리본 사용자 지정”을 선택하는 우측 기본 탭에서 “개발 도구”를 체크하고 “확인” 버튼을 누른다.

상단 메뉴에 ‘개발 툴’ 메뉴가 나타났으니 개발 툴을 선택해 준다.

‘개발 툴→Visual Basic’을 선택하면 VBA 코딩이 가능한 새로운 창이 열린다.

새로운 윈도우 메뉴에서 “삽입→모듈”을 선택하면 왼쪽에 모듈이 추가되며 Module1이 자동으로 추가된다.

Module 1 을 선택한다.엑셀에 없는 기능을 사용하기 위해 외부 참조 모듈을 추가해야 하는데 이는 “툴→참조”를 통해 추가할 수 있다. 메뉴에서 “툴-> 참조”를 선택한다.

참조를 선택할 수 있는 팝업창이 뜬다.여기서 다음 항목을 추가해 준다. 자신의 PC 환경에 따라 항목 버전은 약간 차이가 있을 수 있지만 문제는 없다.(참고로 엑셀 버전이 2010 이상이어야 할 것 같다) Microsoft XML, v6.0 Microsoft Office 15.0 Object Library Microsoft Win HTTPServices, version 5.1

코딩을 위한 준비는 모두 끝났다.코딩을 해준다.

[전체 소스 코드] 코딩이 완료되면 상단의 실행 버튼을 눌러본다.

[실행결과] 엑셀에 결과값이 들어왔음을 확인할 수 있다.

■ 기타 [에러 발생시] 상기 소스에서 “objHttp.Status” 값을 프린트 하거나 디버깅하여 보면 상태를 알면 에러 코드에 대한 상태는 다음을 참조한다.오류 및 정보 배치 정보-100: 인증 키가 유효하지 않습니다. 인증키를 확인하세요! 인증키가 없다면 인증키를 신청해주세요! 정보-200:해당 데이터가 없습니다.오류-100: 필수값이 누락되었습니다. 필수값을 확인해주세요! 필수값이 누락되면 오류가 발생합니다. 요청 변수를 참고하세요!오류-200: 파일 유형 값이 누락되었거나 유효하지 않습니다. 파일 타입의 값을 확인해 주세요! 파일 유형 값이 누락되거나 유효하지 않을 경우 오류가 발생합니다. 요청 변수를 참고하세요!오류-300: 조회수 값이 누락되었습니다. 조회 시작 건수/조회 종료 건수 값을 확인하세요! 조회 시작 건수/조회 종료 건수 값이 누락되면 오류가 발생합니다.오류-301: 조회수값 유형이 유효하지 않습니다. 조회수 값을 확인하세요! 조회수값 유형이 유효하지 않으면 오류가 발생합니다. 정수를입력하세요.에러-500: 서버 에러입니다. OpenAPI 호출 시 서버에서 오류가 발생했습니다. 해당 서비스를 찾을 수 없습니다.에러-600:DBConnection 에러입니다. OpenAPI 호출 시 서버에서 DB 접속 오류가 발생했습니다.오류 – 601: SQL 오류입니다. OpenAPI 호출 시 서버에서 SQL 오류가 발생했습니다.
참고로 C# 예제 소스는 다음과 같다.