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

엑셀(Excel)/VBA

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

 

환경: Microsoft Excel 2013

 

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

 

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

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

 

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

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

 

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

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

 

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

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

저작자 표시 비영리 변경 금지
신고
Posted by 녹두장군


티스토리 툴바