ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 엑셀 VBA 문자열에서 숫자,대문자,소문자,한글 추출하는 방법
    Dung--[엑셀] 2023. 4. 6. 17:09

    엑셀 VBA 문자열에서 숫자,대문자,소문자,한글 추출하는 방법

     

    엑셀의 문자열을 하나씩 쪼개서 숫자,영문대문자,소문자, 한글 등으로 분리해 낼수가 있습니다. 또한 숫자와 연산자만 추출하여서 계산을 하실 수도 있고 사용자가 제대로 입력을 하였는지 체크하실 수 있습니다. 이렇듯 다양하게 활용할 수 있는 소스입니다.



    1. 함수는 두개의 인수로 이루어져 있는데 영역과 구분자 입니다. 아래 그림과 같이 Div 인수에 값을 넣으면 해당되는 값을 리턴합니다.


    Div = 1 숫자추출
    Div = 2 소문자추출
    Div = 3 대문자추출
    Div = 4 한글추출
    Div = 5 기타문자

    엑셀 VBA 문자열에서 숫자,대문자,소문자,한글 추출하는 방법 1

    2. 문자열을 하나씩 분리하여 판단하는데 Len 함수로 문자열의 길이만큼 For 문을 돕니다. 또한 문자열을 한개씩 추출하는 함수는 Mid() 입니다.


    strData = cell.Value
    For i = 1 To Len(strData)
        strTemp = Mid(strData, i, 1)
    Next

     

    3. 추출한 함수를 Select Case 문으로 구분하고 미리 만들어놓은 String 변수에 저장을 합니다. Case 문에 To를 써서 범위를 지정하실 수 있습니다. "0" To "9" 이면 그 문자에 해당하는 것은 전부 다 걸러낼수가 있습니다. 이런방식으로 소문자, 대문자, 한글도 가능하다는 것입니다.

     


    Select Case strTemp
        Case "0" To "9"
            strNumber = strNumber + strTemp
        Case "A" To "Z"
            strUpper = strUpper + strTemp
        Case "a" To "z"
            strLower = strLower + strTemp
        Case "ㄱ" To "ㅎ"
            strHan = strHan + strTemp
        Case Else
            strElse = strElse + strTemp
    End Select

     

    4. Select Case를 활용하여 숫자, 영문, 한글, 기타등을 저장한 문자열을 구분하여서 리턴을 하는 소스입니다. 두번쨰 인수로 넘어온 div 값으로 판단을 합니다.


    Select Case div
        Case 1
            문자열분리 = strNumber '' 숫자추출
        Case 2
            문자열분리 = strLower '' 소문자추출
        Case 3
            문자열분리 = strUpper '' 대문자추출
        Case 4
            문자열분리 = strHan '' 한글 추출
        Case 5
            문자열분리 = strElse '' 기타문자
    End Select

     

    5. 아래는 문자열을 구분하여서 추출하는 함수의 전체적인 내용입니다.

     


    Function 문자열분리(cell As Range, div As Integer)
      
        Dim strData As String
        Dim strNumber As String
        Dim strLower As String
        Dim strUpper As String
        Dim strElse As String
        Dim strHan As String

        strData = cell.Value
        For i = 1 To Len(strData)
            strTemp = Mid(strData, i, 1)
           
            Select Case strTemp
                Case "0" To "9"
                    strNumber = strNumber + strTemp
                Case "A" To "Z"
                    strUpper = strUpper + strTemp
                Case "a" To "z"
                    strLower = strLower + strTemp
                Case "ㄱ" To "힣"
                    strHan = strHan + strTemp
                Case Else
                    strElse = strElse + strTemp
            End Select
        Next
       
        Select Case div
            Case 1
                문자열분리 = strNumber '' 숫자추출
            Case 2
                문자열분리 = strLower '' 소문자추출
            Case 3
                문자열분리 = strUpper '' 대문자추출
            Case 4
                문자열분리 = strHan '' 한글 추출
            Case 5
                문자열분리 = strElse '' 기타문자
        End Select
    End Function

     

    6. 위 함수에서 div 인수를 따로 주어서 추출한 내용입니다. 결과값이 정확히 추출하여진 것을 보실 수 있습니다.

    엑셀 VBA 문자열에서 숫자,대문자,소문자,한글 추출하는 방법 2

    댓글

Designed by Tistory.