티스토리 뷰

2017년도 2회 컴퓨터활용능력 1급 필기 기출문제 31번을 풀이한 것이다. 

엑셀 VBA 매크로 메세지 박스에 관한 명령코드이다. 이를 분석하여 잘못된 보기의 설명을 찾아보자.


31. a=MsgBox("작업을 종료합니까?“, vbYesNoCancel + vbQuestion, "확인”)이라는 VBA 코드로 표시되는 메시지 박스에 관한 설명으로 옳지 않은 것은?


메시지 박스에 정보 아이콘( 삼각느낌표 )이 표시된다.

② 메시지 박스의 제목으로 '확인'이 표시된다.

③ 메시지 박스의 <Esc>키를 누르면 작업이 취소된다.

④ 메시지 박스에 '예', '아니오', '취소' 버튼이 표시된다.


풀이 :


엑셀에서의 메세지 박스에 관한 문제이다. 이 메세지 박스는 VBA 매크로 코드로 임의 표시가 가능하다. 이때, 이 메세지 박스도 나름의 규칙이 있다. 문제에서의 MsgBox 코드를 분석하며, 이 규칙을 배워보자.


관련 문제 : [필기 풀이] 컴활2급 기출문제 2006년1회-32번 엑셀 VBA 매크로


엑셀 VBA 매크로 MsgBox 코드 문제 풀이


엑셀 매크로 편집( VBA 모듈 ) 창이다. 사용 명령 MsgBox 의 구문을 다음과 같다. [ ] 은 옵션인수이다.


변수 = MsgBox(Prompt [, Buttons] [, Title], [, HelpFile, Context])


[그림1] 엑셀 VBA 매크로 모듈 MsgBox 코드[그림1] 엑셀 VBA 매크로 모듈 MsgBox 코드



1번) 메시지 박스 아이콘


엑셀에서 MsgBox 명령으로 표시되는 대화상자에는 그 왼쪽에 메시지의 종류를 파악할 수 있는 아이콘이 표시된다. 이때, 표시되는 아이콘은 크게 4가지이다.


[그림2] 엑셀 VBA MsgBox 명령 표시 아이콘[그림2] 엑셀 VBA MsgBox 명령 표시 아이콘



중요, 질의, 경고, 정보의 4가지 메시지로 분류하고, 이를 표시하는 아이콘을 내장상수와 값으로 VBA 매크로에서 설정할 수 있다. 위 문제에서는 MsgBox 함수의 2번째 인수인 vbYesNoCancel + vbQuestion 이다.


[그림3] 엑셀 VBA MsgBox 4가지 아이콘 모양[그림3] 엑셀 VBA MsgBox 4가지 아이콘 모양



이 Buttons 인수의 vbQuestion 은 VBA 내장상수이다. 이는 질의(문답) 메시지를 표시하는 파랑색의 물음표(?) 를 메시지 왼쪽에 표시한다. 그래서, 노랑 느낌표(!) 의 경고 아이콘 을 표시한 보기의 설명은 잘못되었다.


참고1 : VBA 내장상수로 이루어진 vbYesNoCancel + vbQuestion 인수는 그에 해당하는 숫자값 vbYesNoCancel + 32 로도 대신할 수 있다.


2번) 메시지 박스 제목


엑셀 메시지 박스의 제목은 MsgBox 함수의 세번째 인수인 title 이다. 문제에서는 "확인" 이 인수로 전달되었다. "확인" 이 제목표시줄(title)

에 표시된다. 바른 설명이다.


3번) 메시지 박스 작업 취소 단축키


엑셀 메시지 박스( 대화상자 )가 화면에 보일때, '창 닫기' 버튼(X)이나 위 문제에서 보이는 '취소' 버튼을 누르면, 아무 작업없이 대화상자를 닫는다. 이를 키보드 단축키 ESC 로 대신할 수 있다. 바른 설명.


4번) 메시지 박스 버튼


문제의 MsgBox 함수 2번째 인수인 Buttons 는 대화상자에 표시되는 버튼의 종류갯수, 대화상자의 종류를 말하는 아이콘이 표시된다. 이는 버튼수 + 아이콘 의 형태로 MsgBox 에 전달된다.


문제에서는 vbYesNoCancel + vbQuestion 이 전달되었다. 아이콘은 이미 1번) 보기에서 살펴보았다. 그렇다면, 버튼수를 말하는 vbYesNoCancel 상수는 무엇을 말하는가?


[그림4] 엑셀 VBA 메시지박스 버튼수와 종류[그림4] 엑셀 VBA 메시지박스 버튼수와 종류



이는 VBA 매크로에 이미 포함되어 있는 내장상수 중 하나이다. Yes/No/Cancel 의 3가지 버튼을 대화상자에 표시하는 것이다. 이는 한글로는 예/아니오/취소 가 될 것이다.


참고2 : 문제의 2번째 인수인 VBA 내장상수 vbYesNoCancel + vbQuestion 는 3 + 32 로 대신할 수 있다.

참고3 : 이 2번째 인수에 디폴트 선택 버튼 (vbDefaultButton1 ~ 4) 을 추가 설정할 수 있다. vbYesNoCancel + vbQuestion + vbDefaultButton1 (버튼수 + 아이콘 + 디폴트)


관련 문제 : [필기 풀이] 컴활1급 기출 2017년1회-29번 엑셀 VBA 매크로 프로시저



엑셀 VBA 매크로 명령 중 MsgBox 는 문제에서처럼 함수로도 사용되지만 [그림1] 의 주석( MsgBox a )과 같이 명령으로도 사용된다. 함수일때는 대화상자의 선택 버튼을 반환값으로 받아 처리에 사용할 수 있다.


[그림5] 엑셀 VBA 매크로 MsgBox 함수 반환값[그림5] 엑셀 VBA 매크로 MsgBox 함수 반환값



이번 문제에서는 메시지 박스에서 선택한 버튼의 지정값이 a 의 변수로 반환된다. [그림1] 에서 주석으로 처리된 MsgBox a 를 정상 실행하고, 대화상자에서 '아니오' 를 선택하면, 7 이 반환되어 표시된다.


컴퓨터활용능력 1급에서만 출제되는 VBA 매크로 모듈 코딩 명령이다.


관련 문제 : [필기 풀이] 컴활1급 기출 2017년1회-31번 엑셀 VBA 매크로 편집


정답 : 1번


이전 문제 :

[필기 풀이] 컴활1급 기출문제 2017년2회-30번 엑셀 사용자 지정 표시형식


마늘빵.

댓글