인프런 커뮤니티 질문&답변

하정대님의 프로필 이미지
하정대

작성한 질문수

엑셀 매크로와 VBA 기초부터 실무활용까지 완전 정복

1-3. 데이터 편집을 자동화하는 절대 참조 매크로 만들기

반복문의 변수

작성

·

205

1

For Each 시트시, 시트라는 변수를 선언 해주지않았는데 시스템에서 인식을 하는 이유가 있나요?
 
기본적으로 시트라는 것이 엑셀파일에 포함이 되어있는건지 아니면 저희에게는 보이지 않지만 미리 선언이 되어있는건지 알고싶습니다

답변 1

0

엑셀여신님의 프로필 이미지
엑셀여신
지식공유자

 

엑셀 VBA에서는 변수를 선언하지 않아도 사용이 가능합니다.

VBA에 정해져있는 키워드(Range, Sheets, Value,.... 등)가 아니면 변수로 인식하여 프로그램이 동작됩니다.

기본적으로 시트라는 것이 엑셀파일에 포함되어 있거나 미리 선언되어 있거나 그러한 것은 아닙니다.
'변수'라는 단어가 가 VBA에 정해진 키워드가 아니기때문에  변수라고 생각하고 프로그램이 실행된답니다. 

그런데, VBA에서도 변수를 선언하지 않고 사용하는 것은 처리 속도와 오류처리 효율성 등에 문제가 발생하기 때문에 선언한 후 사용하도록 권유하고 있습니다.

모듈 선언부에 'Option Explicit' 문을 추가해두면 이 모듈에서는 반드시 변수를 선언한 후 사용해야 합니다.
선언하지 않으면 변수 선언이 되지 않았다는 오류가 발생합니다.

이러한 내용은 변수 선언 파트에서 자세히 다루고 있습니다.
다른 프로그램 제작 경험이 있으시다면 좀 더 궁금증을 해소하시기 위해 변수 선언 파트를 먼저 학습해보시는것도 좋습니다.

감사합니다~^^

 

 

만약 변수를 설정한다면 어떻게 해야 하나요??

엑셀여신님의 프로필 이미지
엑셀여신
지식공유자

For 반복문 시작하기 전에

Dim 시트 As Worksheet

위의 문장을 추가해주면 됩니다.

하정대님의 프로필 이미지
하정대

작성한 질문수

질문하기