다음 프로시저에 대한 설명으로 옳지 않은 것은?Sub LocalVari… | [컴퓨터활용능력 1급 필기] 12년 3회차 기출문제 상세 페이지
1[컴퓨터활용능력 1급 필기] 12년 3회차
다음 프로시저에 대한 설명으로 옳지 않은 것은?
Sub LocalVariable()
Dim strMsg As String
strMsg = "작업이 완료되었습니다."
MsgBox strMsg
End Sub
Sub OutsideScope()
MsgBox strMsg
End Sub
1
strMsg를 문자열 변수로 선언하였다.
2
변수 strMsg에 "작업이 완료되었습니다."라는 문자열을 대입시킨다.
3
변수 strMsg 내용을 MsgBox를 이용해 대화상자에 표시한다.
4
OutsideScope()에도 LocalVariable()에서 선언된 strMsg 변수가 적용되어 MsgBox를 이용해 대화상자에 표시한다.
해설
Dim으로 프로시저 안에서 선언한 변수는 지역 변수여서 선언된 프로시저 안에서만 유효하고, 프로시저가 끝나면 값이 사라진다. 코드의 strMsg는 LocalVariable 프로시저 안에서 Dim strMsg As String으로 선언되었으므로 그 프로시저 전용 변수다.
LocalVariable 프로시저는 strMsg를 문자열(String) 변수로 선언하고, 여기에 "작업이 완료되었습니다."를 대입한 뒤 MsgBox strMsg로 그 내용을 대화상자에 표시한다. 코드 세 줄이 각각 선언·대입·표시에 그대로 대응한다.
반면 OutsideScope 프로시저의 MsgBox strMsg에서 쓰인 strMsg는 LocalVariable의 변수와 아무 관계가 없는 별개의 이름이다. 모듈 선언부에 Option Explicit가 있으면 정의되지 않은 변수라는 컴파일 오류가 나고, 없으면 값이 비어 있는 Variant로 취급되어 빈 대화상자가 뜰 뿐 "작업이 완료되었습니다."는 표시되지 않는다. 두 프로시저에서 함께 쓰려면 모듈 선언부에 Private이나 Public으로 선언해야 한다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.