Please Enable JavaScript!
Gon[ Enable JavaScript ]

엑셀 VBA 정규식으로 한글, 일어, 한자 추출하기

엑셀(Excel)/VBA
반응형

정규식을 사용하면 한글에서 한자, 일본어, 영어 등 모든 언어를 분리해 낼 수 있습니다. 정규식 패턴에 언어의 유니코드 영역을 삽입하고 Execute 함수를 사용하면 추출하고 싶은 언어만 분리해 낼 수가 있기 때문입니다. 우선 엑셀 VBA 에서 정규식을 사용하기 위해서는 선행 작업이 필요합니다. 

 

 먼저 VBA 에서 정규식을 사용을 위해서는 지원하는 라이브러리를 추가해야 합니다. [도구] > [참조] 메뉴를 선택해서 라이브러리 추가를 위한 팝업창을 띄웁니다. 사용 가능한 참조 리스트에서 Microsoft VBScript Reqular Expression 5.5 를 선택하고 [확인] 버튼을 누릅니다.

엑셀 VBA 정규식으로 한글, 일어, 한자 추출하기

 

다음은 프로그램을 위해서 필요한 정보입니다. 문자열에서 추출하고 싶은 언어의 유니코드 영역을 알아야 합니다. 아래 위키 페이지로 가시면 언어별 유니코드 범위를 알 수 있습니다. 한글은 범위가 하나로 해결되지만 한자는 4가지 정도 됩니다. 패턴 작성할 때도 모든 범위를 넣어야 되겠죠.

https://ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C_%EB%B8%94%EB%A1%9D

 

엑셀 VBA 정규식으로 한글, 일어, 한자 추출하기

아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 VBA 정규표현식 사용하는 방법, 공백 문자 제거하기
엑셀 VBA 메시지박스 (MsgBox) 에 문자열 줄 바꿈을 적용하는 방법
엑셀 Excel 한자 데이터를 입력하고 등록하기
엑셀 VBA 메모의 모양을 직사각형, 풍선, 다이어몬드 형태로 만드는 방법
엑셀 Excel 특정 문자 시작하고 끝나는 단어 찾기

 



 

한글 유니코드는 AC00 ~ D7AF 사이값입니다. 두 유니코드 사이에 한글에서 사용하는 모든 글자들이 들어가 있습니다. 추출하고 싶은 유니코드 값을 확인했다면 Pattern 속성값에 정규식을 작성해서 넣습니다. “u” 는 유니코드를 나타내며 “+” 하나 이상을 말합니다. 그리고 “[]” 은 범위를 나타냅니다. 이렇게 식을 만들어서 넣고 Execute() 함수를 호출하면 패턴에 일치하는 값들을 배열 형태로 리턴 합니다. 리턴한 값을 For Each 반복문으로 하나씩 꺼내서 쓸 수 있습니다. 아래 소스는 콘솔에 출력을 해 본 것입니다.

Sub 한글추출() 
    Dim RegEx As Object
    Set RegEx = CreateObject("vbscript.regexp")
   
    RegEx.IgnoreCase = True ' 대소문자 구분안함    RegEx.Global = True
   
    sStr = "한국어의 한자(韓國語의 漢字)는 한국에서 쓰이는 한자(漢字)"
   
    '// 한글 추출    
    RegEx.Pattern = "[\uAC00-\uD7AF]+"
    Set matches = RegEx.Execute(sStr)
    
    For Each mch In matches
        Debug.Print mch.Value
    Next
       
    '// 한자 추출    
    RegEx.Pattern = "[\u2E80-\u2EFF\u3400-\u4DBF\u4E00-\u9FBF\uF900-\uFAFF\u20000-\u2A6DF\u2F800-\u2FA1F]+"
    Set matches = RegEx.Execute(sStr)
    
    For Each mch In matches
        Debug.Print mch.Value
    Next
   
End Sub

 

 

위의 소스를 실행한 결과 값입니다. 한글과 한자를 추출해서 콘솔에 출력했습니다. 이렇게 텍스트에서 불필요한 것들을 추출하고 싶다면 정규식을 이용하세요. 응용만 잘 하시면 아주 다양한 용도로 사용이 가능합니다. 

엑셀 VBA 정규식으로 한글, 일어, 한자 추출하기

아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 VBA 정규표현식 사용하는 방법, 공백 문자 제거하기
엑셀 VBA 메시지박스 (MsgBox) 에 문자열 줄 바꿈을 적용하는 방법
엑셀 Excel 한자 데이터를 입력하고 등록하기
엑셀 VBA 메모의 모양을 직사각형, 풍선, 다이어몬드 형태로 만드는 방법
엑셀 Excel 특정 문자 시작하고 끝나는 단어 찾기
반응형
Posted by 녹두장군

댓글을 달아 주세요

  1. 익명 2016.04.28 07:36  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

  2. 익명 2018.11.26 17:16  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다