반응형
텍스트를 한 글자씩 떼어 내서 분석하고 싶을 때 사용할 수 있는 방법입니다. 보통 문자와 숫자를 구분하거나 특정 문자열을 추출할 때 이용하곤 합니다.
◎ 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 문자열, 텍스트 숫자를 문자열 숫자로 변경하는 방법 |
반응형
'엑셀(Excel) > VBA' 카테고리의 다른 글
엑셀 VBA 통합 문서 문서가 열리는 순간 기능 구현하기 (0) | 2024.06.05 |
---|---|
엑셀 VBA 날짜 관련 함수, 개체 사용하는 방법 (0) | 2024.06.02 |
엑셀 VBA 중복 데이터 재귀 호출과 반복문 사용해서 삭제하기 (0) | 2024.06.02 |
엑셀 VBA 문자열, 텍스트 숫자를 문자열 숫자로 변경하기 (0) | 2024.06.01 |
엑셀 VBA 다른 셀에 일치하는 코드 값에 데이터 찾아 추가하기 (4) | 2024.05.29 |
엑셀 VBA 배열 처리를 위한 Array 객체 사용하는 방법 (0) | 2024.05.27 |
엑셀 VBA 옵션 버튼 OptionButton 컨트롤 사용하기 (0) | 2024.05.26 |
엑셀 VBA 매크로 실행 버튼으로 코드 실행하기 (2) | 2024.05.22 |