RESTful API를 사용할 때에 URL에 옵션 내용을 넣어야 하는 경우 URL Encode를 해야 합니다.
Excel은 2013버전부터 내장함수로 ENCODEURL()을 지원하고 있으나, 그 이전 버전도 사용해야 하므로
아래와 같이 간단한 코드로 Encoding을 할 수 있습니다.
Function EncodeURL(Text As Variant)
'// Application.ENCODEURL은 Excel2013부터 지원함
Dim oHTML As Object: Set oHTML = CreateObject("htmlfile")
oHTML.parentWindow.execScript "function encode(s) {return encodeURIComponent(s)}", "jscript"
EncodeURL = oHTML.parentWindow.encode(Text)
Set oHTML = Nothing
End Function
그리고, HTML 소스를 가져오면 일반문자는 그대로 있으나 HTML Entity에 해당하는 것들은 &를 &로 변경되어 있으므로 이를 다시 정상 문자열로 변환할 필요가 있습니다.
이럴 때에도 htmlfile을 생성하고 innerHTML에 HTML소스를 넣은 다음 innerText로 정상 문자열을 얻을 수 있습니다.
Function DecodeHTML(Text As String)
Dim oHTML As Object
Set oHTML = CreateObject("htmlfile")
oHTML.body.innerHTML = Text
DecodeHTML = oHTML.body.innerText
Set oHTML = Nothing
End Function
'Excel - VBA' 카테고리의 다른 글
Google 번역 앱을 이용한 번역 함수 만들기 (0) | 2023.07.11 |
---|---|
VBA에서 Web 정보 가져오기 (Web Scraping) (0) | 2023.07.11 |
VBA로 인터넷 연결을 확인하기 (0) | 2023.07.10 |
Filter된 영역에서 Macro 작업하기 (0) | 2023.07.03 |
길이 0인 문자열 제거하기 (0) | 2023.06.28 |