본문 바로가기
엑셀/VBA

변수의 타입에 따라 조건 사용하기

by 큐브빌드 2023. 10. 8.
반응형

저는 자주 사용하지는 않았지만 상황에 따라 변수의 타입이 변경되어 설정되어야 하는 경우가 있습니다.

 

그래서 타입에 따라 뭔가 조건문을 사용할 때 필요한 내용입니다.

 

예를 들면

입력된 값이 숫자이냐 텍스트 이냐
배열로 입력되었느냐 단일 변수로 입력되었느냐

입력된 값이 숫자이냐 텍스트이냐 구분은

IsNumeric

단어 뜻 그대로입니다.

 

숫자이면 True로 반환되고 , 숫자가 아니면 False로 반환됩니다. (Boolean 형태)

 

Boolean이기 때문에 If 문의 조건으로 사용하기 위해서는 True , False 일 때로 구분해서 사용하시면 됩니다.

 

특이점은 아래 이미지처럼

따옴표를 입력하여 숫자만 입력했을 때 에도 IsNumeric은 숫자로 인식해 줍니다.

실제로는 결국 사칙연산 사용 가능 유/무로 판단 되는 것 같네요.

그리고 따옴표에 들어있는 Nums를 숫자가 아닌 String으로 체크하고 싶을 때 사용합니다.

 

 

 


TypeName

을 사용하게 됩니다.

이것은 말 그대로 형식에 존재하는 값을 텍스트 그대로 노출해 줍니다.

 

따라서 IsNumeric과는 다르게 String 형태로 반환해 줍니다.

 

If문과 함께 사용하기 위해서는 아래와 같이 결과 값 = "String"

과 같이 조건문을 사용하시면 됩니다.

 


그다음 제가 많이 쓰는 게 배열이냐 아니냐를 체크하는 상태입니다.

 

변수가 배열이라면 Ubound 또는 LBound를 사용했을 때 몇 개 배열인지 확인 가능하지만

 

해당 변수가 배열이 아니면 에러가 노출되게 됩니다.

 

물론 해당 내용도 TypeName으로 해결할 수 있습니다.

하지만 조금 더 간편하게 사용하기 위해서는 IsArray를 사용합니다.

 

아래 예시를 보시면 금방 이해될 수 있습니다.

 

Type으로 보면 Variant()로 표시됩니다.

If 문 사용 한다면 "Variant()" 형태입니다.

 

여기까지입니다.

반응형

댓글