문제
다음 중 아래 프로시저에 대한 설명으로 옳지 않은 것은?
① LocalVariable()에서 strMsg를 문자열 변수로 선언 하였다. ② LocalVariable()에서 변수 strMsg에 "작업이 완료되었습니다."라는 문자열을 대입시킨다. ③ LocalVariable()에서 변수 strMsg 내용을 MsgBox를 이용해 대화상자에 표시한다. ④ OutsideScope()에서도 LocalVariable()에서 선언된 strMsg 변수가 적용되어 MsgBox를 이용해 대화 상자에 표시한다.
정답
4번
해설
정답: 4. strMsg는 LocalVariable() 프로시저 내부에서 Dim으로 선언된 지역 변수이므로 그 프로시저 안에서만 유효하다. 다른 프로시저인 OutsideScope()에서는 이 변수를 사용할 수 없다.
오답 풀이
- 1번: Dim strMsg As String으로 문자열 변수를 선언했으므로 옳다.
- 2번: strMsg에 문자열을 대입했으므로 옳다.
- 3번: MsgBox strMsg로 그 내용을 표시하므로 옳다.
- 4번: 지역 변수라 다른 프로시저에서는 적용되지 않으므로 옳지 않다.
보충 개념 프로시저 안에서 Dim으로 선언한 변수는 지역(Local) 변수로 해당 프로시저에서만 유효하다. 여러 프로시저가 공유하려면 모듈 상단에서 전역(Public/모듈 수준) 변수로 선언한다.