Please Enable JavaScript!
Gon[ Enable JavaScript ]

엑셀 VBA 문자열 글자 하나씩 추출하기

엑셀(Excel)/VBA
반응형

텍스트를 한 글자씩 떼어 내서 분석하고 싶을 때 사용할 수 있는 방법입니다. 보통 문자와 숫자를 구분하거나 특정 문자열을 추출할 때 이용하곤 합니다.

 

 

1. Split 함수 사용해서 나누기

 

VBA에서는 문자를 나눌 때 Split 함수를 사용합니다. Split 함수의 매개변수는 두 개입니다. 두 번째 들어가야할 값이 문자를 나눌 때 사용할 구분자입니다. 아래 샘플 함수는 공백을 기준으로 문자를 나눈 결과값 배열 객체를 반환합니다. 

Sub Split_Test()

    Dim StrData() As String '' 배열 정의
    Dim SigleData As String
    
    StrData = Split("가 나 다 라", " ")
        
    For i = 0 To UBound(StrData)
        Debug.Print StrData(i)
    Next i

End Sub

 

소스를 실행한 결과는 다음과 같습니다. 공백을 기준으로 가, , , 라 를 쪼개서 출력했습니다.

 

그런데 구분자가 없는 연결된 문자를 하나씩 분리하려면 어떻게 해야 할까요? 위와 같이 중간에 공백이 존재하지 않습니다. 아래 소스처럼 입력해서 돌리면 문자를 분리하지 않고 전체를 반환합니다. 

Sub Split_Test()

    Dim StrData() As String '' 배열 정의
    Dim SigleData As String
    
    StrData = Split("가나다라", "")
        
    For i = 0 To UBound(StrData)
        Debug.Print StrData(i)
    Next i

End Sub
 ※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 VBA 연산자 사용해서 String 문자열을 합치기
엑셀(Excel) - VBA 숫자를 문자로 변환하는 방법
엑셀 VBA 주민번호, 이메일 문자열 잘라 내는 방법
엑셀 VBA 문자열 자르기, LEFT RIGHT 함수를 이용해 문자열 추출하기
셀 VBA 문자열, 텍스트 숫자를 문자열 숫자로 변경하는 방법

 


 

2. 문자 하나씩 분리하기

 

문자를 하나씩 분리하기 위해서는 Mid 함수를 이용해서 한 칸씩 이동하면서 잘라야 합니다. 먼저 문자를 분리하기 위해 For 반복문을 만듭니다. 반복횟수는 문자열의 길이값입니다. Len() 함수를 통해서 길이를 파악할 수 있습니다. For 문 안에서는 Mid() 함수로 글자 하나씩 분리합니다. 

Sub Split_Test()
    
    Dim StrData As String
    Dim SigleData As String
    
    StrData = "가나다라"
        
    '' 문자를 하나씩 분해 한다.
    For i = 0 To Len(StrData)
        SigleData = Mid(StrData, i + 1, 1)
        Debug.Print SigleData
    Next i

End Sub
 ※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 VBA 연산자 사용해서 String 문자열을 합치기
엑셀(Excel) - VBA 숫자를 문자로 변환하는 방법
엑셀 VBA 주민번호, 이메일 문자열 잘라 내는 방법
엑셀 VBA 문자열 자르기, LEFT RIGHT 함수를 이용해 문자열 추출하기
셀 VBA 문자열, 텍스트 숫자를 문자열 숫자로 변경하는 방법
반응형
Posted by 녹두장군

댓글을 달아 주세요