Please Enable JavaScript!
Gon[ Enable JavaScript ]

엑셀(Excel) VBA – 문자열에서 숫자, 대문자, 소문자, 한글추출하기

엑셀(Excel)/VBA

엑셀(Excel) VBA – 문자열에서 숫자, 대문자, 소문자, 한글추출하기

 

환경 : Microsoft Excel 2010

 

문자열을 하나하나 쪼개서 숫자, 영문대문자, 소문자, 한글 등을 분리해 낼수 있습니다. 이전에 글에서 보았듯이 숫자와 연산자만 추출해서 계산을 할수도 있고 사용자가 제대로 입력했는지 체크할수 있습니다. 이렇게 다양하게 사용할수 있는 소스입니다.

 

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

 

Div = 1 숫자추출

Div = 2 소문자추출

Div = 3 대문자추출

Div = 4 한글추출

Div = 5 기타문자

 

엑셀(Excel) VBA – 문자열에서 숫자, 대문자, 소문자, 한글추출하기

 

문자열을 하나하나씩 분리해서 판단하는데 Len 함수로 문자열의 길이만큼 For 문을 돕니다. 그리고 문자열을 하나씩 추출하는 함수는 Mid() 입니다.

 

strData = cell.Value

For i = 1 To Len(strData)

    strTemp = Mid(strData, i, 1)

Next

 

추출한 함수를 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

 

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

 

Select Case div

    Case 1

        문자열분리 = strNumber '' 숫자추출

    Case 2

        문자열분리 = strLower '' 소문자추출

    Case 3

        문자열분리 = strUpper '' 대문자추출

    Case 4

        문자열분리 = strHan '' 한글 추출

    Case 5

        문자열분리 = strElse '' 기타문자

End Select

 

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

 

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

 

위의 함수에 div 인수를 따로 줘서 추출한 화면입니다. 결과값이 제대로 추출된 것을 볼수 있습니다.

엑셀(Excel) VBA – 문자열에서 숫자, 대문자, 소문자, 한글추출하기

 

Posted by 녹두장군

댓글을 달아 주세요

  1. 감사 2015.08.13 14:14  댓글주소  수정/삭제  댓글쓰기

    감사합니다 잘보고 갑니다
    찾던게 여기 있었네요

  2. 감사합니다 2016.01.05 10:52  댓글주소  수정/삭제  댓글쓰기

    유용한 정보감사합니다~~~^^

  3. 감사 2016.04.04 16:50  댓글주소  수정/삭제  댓글쓰기

    감사합니다. 그런데 한글에서 흫 로 하니 희자가 안 잡히네요 다른 곳을 검색 해서 힣 로 바꾸니 한글이 다 잡힙니다. 혼동 없게 흫을 힣로 바꾸시면 좋겠네요. ^^