Please Enable JavaScript!
Gon[ Enable JavaScript ]

엑셀 VBA 변수 생명 주기 지정하는 방법, Static 정적 변수 사용법

엑셀(Excel)/VBA

변수의 생명 주기를 결정하는 정적 키워드 Static 은 프로젝트가 재설정될 때까지 자신의 값을 그대로 유치합니다. 다시 컴파일을 하기 전까지는 변수의 값은 그대로 유지가 됩니다. 다음에 정적 변수를 사용할 때는 마지막에 입력된 값을 사용하게 되겠죠. 오늘은 변수에 Static 키워드를 설정했을 때와 일반 변수와의 차이점에 대해 알아 보도록 하겠습니다.

 

 

가장 일반적으로 사용하고 있는 함수 내에 변수 입니다. 함수 내에 사용하고 있는 변수일 경우 함수가 끝나면 초기화가 됩니다. 그림과 같이 sub1 이벤트가 계속해서 발생하더라도 val 이 지닌 값은 0으로 초기화가 됩니다.

엑셀 VBA 변수 생명 주기 지정하는 방법, Static 정적 변수 사용법

 

다음은 val 변수를 정적변수로 만들어 보겠습니다. Dim 대신 Static 지시어로 바꾸는 것입니다. 처음 이벤트가 실행되면 초기값이 0 이 되고 함수가 끝나면 val 에는 10 이 저장됩니다. 다시 한번 더 함수를 실행합니다

엑셀 VBA 변수 생명 주기 지정하는 방법, Static 정적 변수 사용법

 

※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 VBA 매크로 디버깅, 디버그 코드 분석하기
엑셀 VBA 반복문 For Next 문 사용하기
엑셀 VBA Function Sub 프로시저의 차이점과 사용법 알아 보기
엑셀 VBA 통합 문서 문서가 열리는 순간 기능 구현하기
엑셀 VBA 각종 함수 사용법과 샘플 소스 쉽게 얻는 방법

 

 

 

계속해서 실행하게 되면 val 값은 마지막에 입력된 값에 데이터를 계속해서 더하게 됩니다. 함수 안에서 Static 을 정의했다고 해서 초기화가 되는 것은 아닙니다. 한번 변수가 생성되면 프로젝트 재설정 할 때까지 그대로 유지하게 됩니다

엑셀 VBA 변수 생명 주기 지정하는 방법, Static 정적 변수 사용법

 

모듈 수준의 변수를 지정해도 Static 과 같은 결과값을 얻을 수 있습니다. 이상으로 함수 내에서 일반 변수와 Static 변수의 차이점에 대해 알아 보았습니다

엑셀 VBA 변수 생명 주기 지정하는 방법, Static 정적 변수 사용법

※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 VBA 매크로 디버깅, 디버그 코드 분석하기
엑셀 VBA 반복문 For Next 문 사용하기
엑셀 VBA Function Sub 프로시저의 차이점과 사용법 알아 보기
엑셀 VBA 통합 문서 문서가 열리는 순간 기능 구현하기
엑셀 VBA 각종 함수 사용법과 샘플 소스 쉽게 얻는 방법
Posted by 녹두장군1
,