* 출처 : http://tip.daum.net/question/57177516
한글을 숫자로 변환하는 방법_numberstring 반대
엑셀에서 numberstring 이라는 함수는 숫자를 한글로 변환하는데 그 반대로 한글을 숫자로 변환하는 함수나 방법 좀 알려주세요.
frdric__| 2009.07.14
사용자 정의 함수로 만들었습니다. 엑셀에서 Alt+F11을 하여 VBE 창에 들어가서 삽입-모듈을 하세요. 모듈 창에 아래의 코드를 복사해 넣고 셀에서 =hantonum("오백사십이만") 또는 =hantonum(한글이 들어있는 셀주소) 로 입력하세요.
아래 소스는 조 단위까지 숫자로 나타내어 줍니다. 숫자가 너무 크면 지수로 나타나니 셀서식에서 숫자로 고쳐주세요.
'--------------------- Function HanToNum(HanStr As String) Dim Jo, Ek, Ma, El As Double If InStr(HanStr, "조") <> 0 Then Jo = makeStr(Left(HanStr, InStr(HanStr, "조") - 1)) Jo = Jo * 10 ^ 12 HanStr = Right(HanStr, Len(HanStr) - InStr(HanStr, "조")) End If If InStr(HanStr, "억") <> 0 Then Ek = makeStr(Left(HanStr, InStr(HanStr, "억") - 1)) Ek = Ek * 10 ^ 8 HanStr = Right(HanStr, Len(HanStr) - InStr(HanStr, "억")) End If If InStr(HanStr, "만") <> 0 Then Ma = makeStr(Left(HanStr, InStr(HanStr, "만") - 1)) Ma = Ma * 10 ^ 4 HanStr = Right(HanStr, Len(HanStr) - InStr(HanStr, "만")) End If If Len(HanStr) <> 0 Then El = makeStr(HanStr) End If HanToNum = Jo + Ek + Ma + El End Function Function makeStr(patStr As String) Dim Chen, Bak, Sib, El As Long If InStr(patStr, "천") <> 0 Then Chen = make123(Left(patStr, InStr(patStr, "천") - 1)) Chen = Chen * 10 ^ 3 patStr = Right(patStr, Len(patStr) - InStr(patStr, "천")) End If If InStr(patStr, "백") <> 0 Then Bak = make123(Left(patStr, InStr(patStr, "백") - 1)) Bak = Bak * 10 ^ 2 patStr = Right(patStr, Len(patStr) - InStr(patStr, "백")) End If If InStr(patStr, "십") <> 0 Then Sib = make123(Left(patStr, InStr(patStr, "십") - 1)) Sib = Sib * 10 patStr = Right(patStr, Len(patStr) - InStr(patStr, "십")) End If If Len(patStr) <> 0 Then El = make123(patStr) End If makeStr = Chen + Bak + Sib + El End Function Function make123(patStr As String) If patStr = "" Or patStr = "일" Then make123 = 1 ElseIf patStr = "이" Then make123 = 2 ElseIf patStr = "삼" Then make123 = 3 ElseIf patStr = "사" Then make123 = 4 ElseIf patStr = "오" Then make123 = 5 ElseIf patStr = "육" Then make123 = 6 ElseIf patStr = "칠" Then make123 = 7 ElseIf patStr = "팔" Then make123 = 8 ElseIf patStr = "구" Then make123 = 9 End If End Function '--------------------------- |
|
댓글 없음:
댓글 쓰기