문제
다음 중 VBA에서 [프로시저 추가] 대화상자의 각 옵션에 대한 설명으로 옳지 않은 것은?
[프로시저 추가] 대화상자 구성: 이름 입력란, 형식(Sub/Function/Property), 범위(Public/Private), '모든 지역 변수를 정적 변수로' 옵션
① Sub와 Public을 선택한 경우 Sub 프로시저는 모듈 내의 모든 프로시저에서 해당 Sub 프로시저를 호출 할 수 있다. ② Sub와 Private를 선택한 경우 Sub 프로시저는 선언된 모듈 내의 다른 프로시저에서만 호출할 수 있다. ③ Function과 Public을 선택한 경우 Function 프로시저는 모든 모듈의 모든 프로시저에 액세스할 수 있다. ④ Function과 Private를 선택한 경우 Function 프로시저는 모든 모듈의 다른 프로시저에서만 액세스할 수 있다.
정답
4번
해설
정답: 4. Private로 선언한 Function은 '모든 모듈'이 아니라 그것이 선언된 동일 모듈 내의 프로시저에서만 액세스할 수 있다. '모든 모듈의 다른 프로시저에서' 접근 가능하다는 설명은 옳지 않다.
오답 풀이
- 1번: Public Sub는 같은 모듈은 물론 다른 모듈에서도 호출 가능하므로 옳다.
- 2번: Private Sub는 선언된 모듈 내에서만 호출되므로 옳다.
- 3번: Public Function은 모든 모듈의 프로시저에서 액세스 가능하므로 옳다.
- 4번: Private Function은 같은 모듈 내에서만 접근 가능하므로 '모든 모듈'은 옳지 않다.
보충 개념 Public은 모든 모듈에서 접근 가능한 전역 범위, Private는 선언된 모듈 내부로 한정되는 지역 범위를 갖는다.