이 페이지에서
구문
= DecodeURL ( URL주소, [출력여부] )
인수구분
형식 설명
URL주소
필수
Variant
한글 또는 영문으로 변환할 URL 주소입니다.
출력여부
선택
결과값을 출력할지 여부를 결정합니다. 기본값은 TRUE 입니다.
마스터 코드
복사한 코드는 VBA 편집기(Alt + F11) 새 모듈에 붙여넣어 사용하세요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
활용 예제
인코딩된 주소를 한글 주소로 되돌리기
= DecodeURL ( "https://www.oppadu.com/%EC%97%91%EC%85%80-%EA%B0%95%EC%A2%8C/" )
'// https://www.oppadu.com/엑셀-강좌/ 를 반환합니다.
여러 셀에 담긴 주소를 한 번에 변환
Sub URL_한글변환()
Dim Rng As Range
For Each Rng In Range("B2:B10")
Rng.Offset(0, 1).Value = DecodeURL(Rng.Value)
Next
End Sub
다행히 설명에 코드는 Decode로 돼 있어서 수정했네요.
이제 코드가 좀 보이기 시작하네요.
고맙습니다.
DECODEURL 사용시 엑셀 시트에서 사용하면 정상적으로 되지만 VBA 내에서 사용시 "5-1. 现代电力" 을 DECODEURL 해보면 "5-1. ?代?力" 이렇게 변환이 됩니다. 중국어 뿐만 아니라 중동등 몇몇국가 언어가 제대로 DECODE가 되지 않습니다. 어떻게 해야 할까요?
말씀하신 문제는 사용중인 윈도우의 시스템 언어 충돌로 인해 발생하는 것으로 보입니다.
아래 링크를 참고하셔서, 시스템 로캘 설정을 변경 후 다시 실행해보시겠어요?
https://www.oppadu.com/question/?mod=document&uid=18143
감사합니다.