오빠두엑셀 `2026 무료 챌린지` 오픈! 완주하고 수료증 받아가세요! 5년 연속 IT분야 베스트셀러! 「 진짜쓰는 실무엑셀 」로 2026년 공부 끝내기 엑셀이 막히셨나요? Q&A 게시판에서 바로 해결하세요.
메뉴

DECODEURL 함수 사용법 및 전체 명령문 :: URL주소를 한글로 변환

URL 주소를 기존의 한글/영문으로 디코딩하는 DECODEURL 함수의 사용법 및 전체 명령문 동작원리를 알아봅니다.

작성자 :
오빠두엑셀
최종 수정일 : 2020. 10. 12. 02:21
URL 복사
메모 남기기 : (5)

DECODEURL 함수 :: 사용자 지정 함수 (VBA)

예제파일
엑셀 예제파일 다운로드_아이콘

요약

DECODEURL 함수는 URL주소를 한글 또는 영문으로 변환하는 함수입니다.

설명

DECODEURL 함수는 URL 주소를 기존의 한글 또는 영문주소로 변환하는 함수입니다. 한글이나 영문을 URL주소로 인코딩하려면 ENCODEURL (VBA) 함수를 사용할 수 있습니다.

VBA DECODEURL 함수 사용예제
DECODEURL 함수로 URL 주소를 한글주소로 변환합니다.

반환값

URL주소를 디코딩된 한글 또는 영문 주소로 반환합니다.

인수

URL주소 한글 또는 영문으로 변환할 URL 주소입니다.
[출력여부] 결과값을 출력할지 여부를 결정합니다. 기본값은 TRUE 입니다.

VBA 코드

Function DECODEURL(varText As Variant, Optional blnEncode = True)
 
'############################################################
'한글/영문 텍스트를 URL 주소로 변경합니다.
'https://www.oppadu.com/vba-decodeurl-함수/
'############################################################
 
Static objHtmlfile As Object
 
If objHtmlfile Is Nothing Then
    Set objHtmlfile = CreateObject("htmlfile")
    With objHtmlfile.parentWindow
    .execScript "function decode(s) {return decodeURIComponent(s)}", "jscript"
    End With
End If
 
If blnEncode Then
    DECODEURL = objHtmlfile.parentWindow.decode(varText)
End If
 
End Function

세부내용

1. objHtmlFile 이라는 HtmlFile 개체를 변수로 생성합니다.
Static objHtmlfile As Object
 
If objHtmlfile Is Nothing Then
    Set objHtmlfile = CreateObject("htmlfile")
End If
2.  생성한 HTML 개체에 decodeURIComponent 함수를 사용해 decode 라는 또다른 모듈내부의 함수를 생성합니다. 

decodeURIComponent 함수에 대한 Javascript 함수 설명은 Mozilla 공식 홈페이지 관련 링크를 참고하세요.

    With objHtmlfile.parentWindow
    .execScript "function decode(s) {return decodeURIComponent(s)}", "jscript"
    End With
3.  [출력여부] 인수 값이 True면, 함수의 결과값으로 디코딩된 한글/영문 주소를 반환합니다.
If blnEncode Then
    DECODEURL = objHtmlfile.parentWindow.decode(varText)
End If
댓글 5
4 (4개 평가)
굴레악
굴레악 2021.04.22 22:20
예제 파일이 ENCODEURL 파일이네요. 확인해 주세요. 다행히 설명에 코드는 Decode로 돼 있어서 수정했네요. 이제 코드가 좀 보이기 시작하네요. 고맙습니다.
하회탈
하회탈 2023.10.04 12:41
안녕하세요. DECODEURL 사용시 엑셀 시트에서 사용하면 정상적으로 되지만 VBA 내에서 사용시 "5-1. 现代电力" 을 DECODEURL 해보면 "5-1. ?代?力" 이렇게 변환이 됩니다. 중국어 뿐만 아니라 중동등 몇몇국가 언어가 제대로 DECODE가 되지 않습니다. 어떻게 해야 할까요?
오빠두엑셀
오빠두엑셀 작성자 2023.10.10 20:09
안녕하세요. 말씀하신 문제는 사용중인 윈도우의 시스템 언어 충돌로 인해 발생하는 것으로 보입니다. 아래 링크를 참고하셔서, 시스템 로캘 설정을 변경 후 다시 실행해보시겠어요? https://www.oppadu.com/question/?mod=document&uid=18143 감사합니다.
하회탈
하회탈 2023.10.04 13:01
DECODEURL("5-1.%20%E7%8E%B0%E4%BB%A3%E7%94%B5%E5%8A%9B-%E4%B8%AD%E5%9B%BD%E7%A0%94%E7%A9%B6%E6%89%80%E7%A0%94%E5%8F%91%E4%B8%9A%E5%8A%A1%E5%A7%94%E6%89%98%E5%90%88%E5%90%8C%202022%E5%B9%B4%E6%9C%80%E7%BB%88%E7%89%88F") 하면 "5-1. ?代?力" 이렇게 결과가 나옵니다.
강민준🤗
강민준🤗 2024.08.11 12:08
좋은 자료 감사합니다.🙇‍♂️