[엑셀/VBA] 데이터가 Null 인지 체크하는 방법
(아래는 MS 오피스 엑셀 2016 VBA 환경에서 데이터를 핸들링 할 때, 특정 데이터가 Null 인지 확인 했던 상황을 바탕으로 작성되었습니다.)
문제
엑셀 VBA 에서 DB에 있는 여러 테이블을 조인해서 데이터를 가져오다 보니 상황에 따라 어떤 항목은 값이 없어 Null
형태로 가져올 때가 있었습니다.
이 경우 Null
값 처리를 위해 VBA 에서 해당 데이터가 Null
인지 확인이 필요했고, 쉽게 그 방법을 찾을 수 있었습니다.
해결
그 방법은 바로 VBA 내장 함수인 IsNull
함수를 사용하는 것입니다.
일단 기본적인 사용 방법은 아래와 같습니다.
If IsNull(RS!Col1) = True Then
'레코드셋의 Col1 열 값이 Null 일 때 수행할 작업
Else
'레코드셋의 Col1 열 값이 Null 이 아닐 때 수행할 작업
End If
너무 쉽죠? IsNull
함수는 매우 단순하게 투입변수가 Null
이면 True
를 반환하고, 그렇지 않으면 False
를 반환하도록 아주 단순하게 만들어져 있습니다.
그런데 여기서 재밌는 점이 하나 있는데, 아래 링크의 내용에서도 알 수 있듯이 어떤 변수가 선언만 되어 있고 아무런 값도 넣지 않은 상태라면 IsNull
함수는 False
를 반환 한다는 것입니다.
궁금해서 직접 해봤는데, 진짜였네요. 만약 이런 경우 IsNull
함수가 True
를 반환하도록 만들기 위해서는 해당 변수에 Null
을 넣어줘야 합니다.
(변수에 Null 이 들어갈 수 있어야 하기 때문에 testVar
변수를 Variant
형식으로 선언했습니다.)
이 부분만 헷갈리지 않는다면 VBA에서 Null
값 체크는 너무나 간단하게 완료할 수 있습니다.
끝.