본문 바로가기
VBA

VBA 배열 안에 값이 존재하는지 확인하는 방법

by 융댜 2019. 5. 25.
반응형

VBA관련 프로그래밍을 하던 중 배열의 값을 출력해야 했는데 문제는 배열이 존재할 수도 있었고 존재하지 않을 수도 있는 상태였습니다. 즉 배열의 값을 출력하기 전에 먼저 배열이 존재를 하는지 안 하는지 확인을 해야 했습니다.

제가 해결 한 방법을 알려드리겠습니다.

Public Sub testArray()

    Dim arr() As Variant
    
    ReDim arr(2)
    
    arr(0) = "V"
    arr(1) = "b"
    arr(2) = "A"
    
End Sub

위에 코드르 보면 동적 배열 arr의 배열의 크기는 인덱스 0에서 2까지 총인덱스는 3입니다.

하지만 동적 배열로 ReDim arr(2) 하기 전 arr의 배열을 확인하고 싶었습니다.

UBound(arr)

배열의 최대 인덱스를 나타내는 함수입니다.  

이것으로는 ReDim arr(2) 이전의 arr배열이 존재하는지 안 하는지는 알 수 없습니다.

 ReDim arr(2) 이전 UBound(arr)를 쓰면 에러가 발생했습니다.

 

그러면 어떻게 해야 할까요?

해결 방안입니다.

Public Sub testArray()
    Dim arr() As Variant
    If Not Not arr Then
        MsgBox "배열 안에 값이 존재합니다."
    Else
        MsgBox "배열 안에 값이 존재하지 않습니다."
    End If
End Sub

 

반응형

댓글