VB(A)

[정규식] 숫자를 한글로 변환

당근쨈 2018. 2. 23. 20:30


위와 같이 숫자를 한글로 바꿔주는 사용자 정의 함수.

정규식을 이용하여 숫자만 추출한 뒤 한글로 변환하였다.

두가지 버전의 함수가 있고 개인적으로는 두번째 함수가 마음에 드는 편.

정규식의 replace 를 이용해 한번에 바꾸고 싶었는데, 구글링을 통해서도 그런 방법은 찾지 못해 결국 순환문을 사용


Option Explicit
Function ConvertKorean(tmp As StringAs String
 
    With CreateObject("vbscript.regexp")
        
        .Global = False
        .Pattern = "(\d+)"
        
        Do
            If .test(tmp) = False Then Exit Do
            tmp = .Replace(tmp, Application.Evaluate("numberstring(" & .Execute(tmp)(0& ",1)"))
        Loop
        
    End With
    
    ConvertKorean = tmp
    
End Function
 
Function ConvertKorean2(tmp As StringAs String
 
    Dim Matches As Object
    Dim i As Integer
    
    With CreateObject("vbscript.regexp")
        
        .Global = True
        .Pattern = "(\d+)"
        Set Matches = .Execute(tmp)
        
        If .test(tmp) = True Then
        
            For i = 1 To Matches.Count
                tmp = Replace(tmp, Matches(i - 1), WorksheetFunction.Text(Matches(i - 1), "[dbnum4]"), Count:=1)
            Next
        
        End If
        
    End With
    
    ConvertKorean2 = tmp
    
End Function
 
cs


숫자+한글에서 숫자만 한글변환(예제파일).xlsm