VBA엑셀 VBA에서 json 데이터 활용하기

2022-12-17

크롤링을 하다보면 html 이 아니라 json구조의 데이터를 크롤링해야 하는 경우가 있습니다.

아래 구조의 긴 텍스트처럼 생긴게 json 구조의 데이터입니다



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
    "glossary": {
        "title": "example glossary",
        "GlossDiv": {
            "title": "S",
            "GlossList": {
                "GlossEntry": {
                    "ID": "SGML",
                    "SortAs": "SGML",
                    "GlossTerm": "Standard Generalized Markup Language",
                    "Acronym": "SGML",
                    "Abbrev": "ISO 8879:1986",
                    "GlossDef": {
                        "para": "A meta-markup language, used to create markup languages such as DocBook.",
                        "GlossSeeAlso": ["GML", "XML"]
                    },
                    "GlossSee": "markup"
                }
            }
        }
    }
}
Colored by Color Scripter
cs



json 구조의 데이터를 이해하지 못한다면, 위의 긴 복잡한 구조를

split, left, mid, right 등의 문자열 분리 방식을 통해 다뤄야 하는데

코드가 엄청 지저분해지고 복잡해집니다.


특히 당장은 어떻게든 이리저리 가공해서 구현했는데

나중에 조금만 다른 구조가 나오면 오류가 나거나

복잡한 코드로 인해 나중에 내가 봐도 무슨 소린지 이해가 안되는 코드가 됩니다.


그래서 VBA에서도 json구조의 데이터를 쉽게 다룰 수 있는 방법이 필요한데

바로 아래 아래 깃허브에서 똑똑하신 분들이 이미 만들어두었습니다.

우리는 갖다 쓰기만 하면 됩니다.

https://github.com/VBA-tools/VBA-JSON


그런데 어떻게 써야 하는지 잘 모르시겠다구요??


그래서 준비했습니다.


아래 첨부파일을 다운받아서 [테스트] 버튼을 클릭해보세요.



코드가 궁금하면 Alt+F11 을 눌러보세요


좌측상단 프로젝트 탭의 모듈이 2개 있습니다.


JsonConverter는 위 깃허브에서 내려받은 코드를 넣어둔 곳이고



Sample 모듈을 열어보시면 


어떻게 사용해야하는지 간단히 써두었습니다.


참고로 마지막 코드 1줄은 Json의 홈페이지주소를 가져와서 브라우저로 여는 코드이니


갑자기 브라우저 열려도 깜짝 놀라지 마세요 :)

저는 여러분께 나쁜 짓을 하지 않습니다..!



그럼 즐거운 VBA 생활 화이팅입니다