컴퓨터 공부/엑셀 & VBA

[엑셀vba ] Option Explicit 역할

도 박사 2020. 11. 16. 16:42
반응형

엑셀vba에서는 변수 선언을 하지 않아도 

 

바로바로 쓸 수 있어서 편리했다.

 

하지만 코드가 길어지고 많은 변수를 사용 할 때 조금 헷갈리는 경우 발생하기도 한다.

 

그래서 언제부터인지 Option Explicit를 선언하여 변수 선언을 강제하고 있다.

 

일반적인 사용

변수선언을 하지 않고도 위 그림처럼 사용해도 아무런 문제는 없다.

 

짧은 코드에서는 이게 더 편함

 

위 코드를 실행하면 A=3, B = 7, C = 10이라는 값이 들어가게된다.

 

아무런 문제가 없지만 장기적으로 계속 프로그래밍을 하려면 변수 선언을 강제화하는게 좋은 습관일거라 판단하였고

 

편리한 부분도 있어서 Option Explicit 선언을 사용하고 있다.

 

오류 발생!!

Option Explicit 선언을 하면 사용하는 모든 변수에 대해 선언해야만 한다.

 

각기 다른 데이터 타입으로 선언하고 코드를 실행해보았다.

 

A는 정수

B는 롱

C는 선택 하지 않음

변수 선언

 

데이터 타입 - 실행 전
실행 결과

변수 C에는 Variant/Long 형태로 변형되었고 코드는 종료되었다.

 

C=B+A 연산에서 데이터형의 크기 큰 타입이 적용되는 듯 하다.

 

* integer = 2kb / 표현 가능한 숫자: -32,768 ~ 32,768  

* long = 4kb / 표현 가능한 숫자: -2,147,483,648 ~ 2,147,483,647

 

뭐 대략 변수선언이 이렇다는걸 알게되었다.


Option Explicit 자동으로 입력하는 방법

 

vba 편집기 -> 도구 -> 편집기 -> 변수 선언 요구 (체크) -> 확인

변수 선언 요구하기 !


 

반응형