VBA/VB6 엔터를 구분자로 스트링 나누기 하기(Split), 배열의 크기(UBound, LBound)
엔터를 구분자로 Split 하기
Dim tArray
tArray = Split(str, vbCrLf, , vbTextCompare)
※ vbCrLf 은 엔터를 뜻한다. 캐리지 리턴, 라인 피드. 각각 나눠서 vbCr, vbLf 로도 각각 쓸 수 있다.
– 엑셀의 각 셀을 대상으로 vba 코딩을 하고 있다면, 엑셀은 vbCrLf 가 아니라 vbLf 를 인자값으로 넣어야 문자를 인식한다. 또한 vbTextCompare 옵션을 꼭 넣어줘야 인식한다.
– vbTextCompare 옵션은 대소문자를 구별하지 않겠다는 의미이다.
Split( 스트링, 바꿀 문자, 바꿀 갯수(미입력시 무제한을 나타내는 -1), 옵션 )
배열의 크기 얻기
Dim tArraySize
tArraySize = UBound(tArray) – LBound(tArray) + 1
예제
‘엔터가 포함된 스트링
Dim str
str = “내용1” + vbCrLf
str = str + “내용2” + vbCrLf
str = str + “내용3” + vbCrLf
str = str + “내용4”
‘배열
Dim tArray
‘스트링을 엔터를 기준으로 잘라서 배열화
tArray = Split(str, vbCrLf, , vbTextCompare)
‘배열 사이즈 구하기
Dim tArraySize
tArraySize = UBound(tArray) – LBound(tArray) + 1
‘배열 내용 출력
For i = 0 To tArraySize – 1
MsgBox (tArray(i))
Next i