본문 바로가기
  • Welcome!
VBA For Windchill

학습 02) Open API, 엑셀 VBA

by ToolBOX01 2024. 6. 22.
반응형

Dart Open API에서 개발가이드 → 상장기업 재무정보 → 단일회사 주요계정에서 "스튜디오드래곤" 재무 정보를 가져오는 프로그램을 만들어 봅니다. 

WinHTTP 라이버리를 활용하여 "Get" 키로 URL 정보를 입력하면 필요한 정보를 받을 수 있고, 이것의 사용 방법은 위 그림을 참고 합니다. "GET" , URL, 인증크, 교유번호, 사업연도, 보고서 코드를 "&"로 연결 하여, 서버에사 아래와 같은 내용을 가겨 옵니다.

가져온 xml 파일을 엑셀에서 Open 하였습니다

 

▷▷  참고 자료)

데이터는 가져오는 방법중 "바이너리"로 가져올수 있습니다. 기계가 이해 하는 이진법 문서(텍스트) 저장 방법 입니다.

 

바이너리 파일이란?

바이너리 파일이란? 여러분이 컴퓨터를 다루다 보면, 실행파일(exe), 이미지 파일(jpeg,png 등) 등을 볼 수 있습니다. 이러한 파일을 열어보면 이미지 파일이나 특정 프로그램이 실행이되죠. 하지만

develsw.tistory.com

 

텍스트파일 저장형식은 "유니코드", "ANSI", "UTF-8" 형식이  있습니다.
UTF-8 인코딩은 다양한 언어로 쓰여진 문자를 컴퓨터가 이해하고 처리할 수 있도록 하는 중요한 역할을 합니다.

 

 

문자열 encoding에 대한 정리, UTF-8이란??

우리가 흔히 코딩을 진행할 때, 다음과 같이 한글이 깨지는 현상을 마주치게 됩니다. 이러한 문제는 보통 한글을 포함한 우리가 사용하는 문자에 대해 인코딩 방식이 잘못 설정되어있기 때문에

kkkdh.tistory.com


XML 파일 타입으로 재무 정보 파일을 폴더에 저장 하겠습니다. 

Option Explicit
Sub Open_API01()

    '// 변수 선언  
	Dim strURL, FileName As String
	Dim OHTTP As WinHttpRequest
    Set OHTTP = New WinHttpRequest '// WinHttpRequest 객체 생성
    
    '//API URL 설정
    strURL = "https://opendart.fss.or.kr/api/fnlttSinglAcnt.xml?crtfc_key= 인증코드&corp_code=01168684&bsns_year=2019&reprt_code=11011"
    
    '// GET 요청 설정 및 전송
    OHTTP.Open "Get", strURL, False
    OHTTP.Send
    
    '// 상태 코드 및 응답 본문 확인
    Debug.Print "Status: " & OHTTP.Status
    Debug.Print "ResponseText: " & OHTTP.ResponseText
    Debug.Print "ResponseBody length: " & LenB(OHTTP.ResponseBody)
    
    
     If OHTTP.Status = 200 Then '// 응답 처리 (성공 시, 상태 코드 200)
     
            '// 바이너리 파일 저장 (UTF-8 인코딩으로 저장)
            FileName = "G:\Dart\DartTest.xml"
            Open FileName For Binary Access Write As #1
            Put #1, 1, OHTTP.ResponseBody
            Close #1
        
     End If
End Sub

 

▷▷  주의 사항

 '// 상태 코드 및 응답 본문 확인
    Debug.Print "Status: " & OHTTP.Status
    Debug.Print "ResponseText: " & OHTTP.ResponseText
    Debug.Print "ResponseBody length: " & LenB(OHTTP.ResponseBody)

인증코드 입력이 잘못돤 경우 오류가 발생 합니다.
요구한 데이터가 없을 경우 오류가 발생 합니다.

 

 

기업 재무정보 자동 수집하기2(Open API, 엑셀VBA)

지난번 글에 이어서 본격적으로 내게 필요한 재무정보를 가져오는 부분을 완성해 보도록 하겠습니다. 지난...

blog.naver.com

 

참고 : XML 파일 정렬 방법
먼저 불필요한 문자를 제거 해야 합니다.

 

[Notepad++] XML 텍스트 정렬하기

안녕하세요. yeTi입니다.오늘은 Notepad++를 이용하여 XML 형식의 텍스트를 쉽게 정렬하는 방법에 대해서 알아보겠습니다. 상단 메뉴에서 플러그인 > Plugin Manager > Show Plugin Manager 를 선택합니다.XML Too

yeti.tistory.com

 

WinHttpRequest로 사이트 패이지 내용 보기(html 파일 형식)

 

 

[VB 6.0] WinHttp를 이용하여 웹페이지 컨트롤하기

WinHttp를 사용하기 위해서는, 프로젝트 - 참조에서 찾아보기 - WinHttp.dll을 찾아서 참조시키거나, ...

blog.naver.com