본문 바로가기
카테고리 없음

[vb6.0/vba] 한글을 발음대로 영어로 변환(한글이름 영문표기)

by IT HUB 2021. 1. 30.
728x90
반응형
Function Ename(T$)
    Dim cho() As Variant, moum() As Variant, jong() As Variant    cho() = Array("g""kk""n""d""tt""r""m""b""pp""s""ss""""j""jj""ch""k""t""p""h")
    moum() = Array("a""ae""ya""yae""eo""e""yeo""ye""o""wa""wae""oe""yo""u""wo""we""wi""yu""eu""ui""i")
    jong() = Array("""k""kk""k""n""n""n""t""l""l""l""l""l""l""l""l""m""p""p""s""ss""ng""j""ch""k""t""p""h")
    Dim i&, W, Str$, K&, n&
    For i = 1 To Len(T)
        W = AscW(Mid(T, i, 1)) - &HAC00
        If W + &HAC00 > 0 Then
            Str = Str & Mid(T, i, 1)
        Else
            For n = 1 To 3
                If n = 2 Then
                        K = (W Mod 21 * 28) \ 28
                        Str = Str & moum(K)
                Else
                    If n = 1 Then
                        K = W \ (21 * 28)
                        Str = Str & cho(K)
                    Else
                        K = (W Mod 21 * 28) Mod 28
                        If K Then Str = Str & jong(K)
                    End If
                End If
            Next
        End If
    Next
    Ename = StrConv(Str, vbProperCase)
End Function
 

사용 예:) debug.? Ename("한글 app 영어")

결과 예:)Hangeul App Yeongeo

 

반응형


댓글