VBA/VB6 엔터를 구분자로 스트링 나누기 하기(Split), 배열의 크기(UBound, LBound) 얻기

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