이 글이 필요한 사람
용어는 익숙하지만 문제에서 어느 것을 골라야 할지 멈추는 수험생에게 필요한 글입니다.
컴활 1급 MsgBox 상수 vbYesNo vbQuestion vbDefaultButton2를 검색한 사람은 단순 정의보다 실제 문제에서 무엇을 먼저 확인할지가 필요합니다.
이 글은 vbYesNo·vbQuestion·vbDefaultButton2의 차이와 문제 풀이 순서만 다루며, 과목 전체 요약이나 시험 일정 정보까지 범위를 넓히지 않는다. 이미 발행된 글이 맡은 범위는 반복하지 않습니다.
두음 암기부터 시작하세요: 단아기
`단아기`는 '단추·아이콘·기본'의 앞말입니다. MsgBox buttons 인수에서 무엇을 정하는 상수인지 먼저 분류합니다.
vbYesNo는 버튼 그룹, vbQuestion은 아이콘 그룹, vbDefaultButton2는 기본 버튼 그룹에 속합니다.
`MsgBox(prompt, vbYesNo Or vbQuestion Or vbDefaultButton2, title)`처럼 두 번째 인수를 조합한 뒤, 반환된 값은 `vbYes`·`vbNo`로 따로 비교합니다.
먼저 결론부터 확인합니다
MsgBox의 두 번째 인수인 buttons는 버튼 종류·아이콘·기본 버튼 상수를 조합하는 자리입니다.
가장 먼저 vbYesNo가 버튼, vbQuestion이 아이콘, vbDefaultButton2가 기본 버튼이라는 역할을 분리합니다.
그다음 MsgBox가 반환한 vbYes·vbNo와 세 번째 인수 Title을 두 번째 인수의 옵션과 섞지 않는지 확인하세요.
vbYesNo
`vbYesNo`는 값 4이며 MsgBox에 Yes와 No 두 버튼을 표시하는 버튼 그룹 상수입니다.
문제에서 '예·아니요 버튼', '두 선택지 버튼'이라는 단서가 보이면 아이콘 상수가 아니라 vbYesNo를 먼저 찾습니다.
vbYesNo 자체는 사용자가 누른 결과가 아닙니다. 클릭 결과는 MsgBox 반환값인 vbYes 또는 vbNo로 비교합니다.
vbQuestion
`vbQuestion`은 값 32이며 질문·경고 질의 형태의 아이콘을 지정하는 아이콘 그룹 상수입니다.
문제에서 버튼 개수가 아니라 아이콘 모양·질문 메시지 표시를 묻는다면 vbYesNo와 분리해 판단합니다.
vbQuestion은 클릭 결과를 반환하지 않으며, 반환값 비교는 vbYes·vbNo 같은 VbMsgBoxResult 상수를 사용합니다.
vbDefaultButton2
`vbDefaultButton2`는 값 256이며 두 번째 버튼을 기본 버튼으로 지정하는 상수입니다.
기본 버튼은 사용자가 바로 선택할 수 있도록 지정되는 기본 응답 위치이지, 두 번째 버튼을 자동으로 클릭하는 명령이 아닙니다.
따라서 '두 번째 버튼을 기본값으로 설정'과 '사용자가 No를 눌렀을 때 vbNo 반환'은 서로 다른 단계입니다.
반환값
MsgBox 함수는 사용자가 누른 버튼에 따라 Integer를 반환하며, 대표적으로 vbOK=1, vbYes=6, vbNo=7입니다.
문제에서 `If Response = vbYes Then`처럼 조건을 묻는다면 buttons 인수가 아니라 반환값 비교 구간입니다.
vbYesNo는 버튼을 만들고 vbYes·vbNo는 결과를 판정한다는 문장을 한 쌍으로 외우면 됩니다.
Title
MsgBox의 세 번째 인수 Title은 메시지 상자의 제목 표시줄 문구를 지정합니다.
buttons 인수에 Title 문자열을 넣는 것이 아니라, prompt 다음에 버튼 조합을 넣고 그 뒤에 제목을 둡니다.
문제에서 제목 표시줄·창 이름을 묻는 단서는 vbYesNo·vbQuestion·vbDefaultButton2와 다른 인수라는 점을 확인합니다.
상수 조합 예시
버튼·아이콘·기본 버튼을 한 번에 지정할 때는 `vbYesNo Or vbQuestion Or vbDefaultButton2`처럼 조합합니다.
반환값을 받을 때는 `Response = MsgBox(prompt, Style, title)`처럼 MsgBox 호출 결과를 변수에 저장합니다.
이후 `If Response = vbYes Then`처럼 사용자의 선택을 비교합니다. 옵션을 만드는 상수와 결과를 확인하는 상수를 한 줄에서 분리해 읽으세요.
자주 틀리는 함정 네 가지
1. vbYesNo와 반환값 vbYes를 같은 역할로 보지 않는다.
2. vbQuestion을 버튼 종류로, vbDefaultButton2를 클릭 결과로 읽지 않는다.
3. 상수 조합은 버튼·아이콘·기본 버튼 그룹에서 역할을 나눠 `Or`로 결합한다.
4. 기본 버튼 지정이 자동 클릭이나 vbNo 반환을 뜻한다고 오해하지 않는다.
문제에서 적용하는 순서
1단계. MsgBox의 인수 위치에서 buttons인지 Title인지 확인합니다.
2단계. vbYesNo는 버튼, vbQuestion은 아이콘, vbDefaultButton2는 두 번째 기본 버튼으로 분류합니다.
3단계. `Or`로 조합된 두 번째 인수와 MsgBox 반환값 비교 구간을 분리합니다.
4단계. If 조건의 vbYes·vbNo·vbOK가 실제 클릭 결과를 가리키는지 확인합니다.
5단계. 기본 버튼을 자동 클릭이나 반환값으로 설명하는 선지를 제거합니다.
시험 직전에는 다섯 줄만 봅니다
1. vbYesNo=4: Yes·No 두 버튼.
2. vbQuestion=32: 질문·경고 질의 아이콘.
3. vbDefaultButton2=256: 두 번째 버튼을 기본 버튼으로 지정.
4. 반환값: vbYes=6, vbNo=7, vbOK=1처럼 클릭 결과를 비교.
5. 조합: buttons 인수에서 `Or`, Title은 세 번째 인수.
30초 셀프 체크
1. 질문: 버튼을 고르는 상수는? 정답: vbYesNo입니다.
2. 질문: 질문 아이콘을 고르는 상수는? 정답: vbQuestion입니다.
3. 질문: 두 번째 버튼을 기본값으로 하는 상수는? 정답: vbDefaultButton2입니다.
4. 질문: 사용자가 Yes를 눌렀는지 비교하는 상수는? 정답: 반환값 vbYes입니다.
5. 질문: 창 제목을 지정하는 위치는? 정답: MsgBox의 세 번째 인수 Title입니다.
근거 자료와 발행 전 재확인
이 글은 Microsoft Learn의 MsgBox 함수와 MsgBox constants 문서를 대조해 작성했습니다.
공식 문서의 핵심은 buttons 인수가 버튼·아이콘·기본 버튼·모달 그룹을 조합하고, 함수 반환값은 사용자가 누른 버튼을 별도로 나타낸다는 점입니다.
실제 발행일에는 링크 접근 여부와 문서 표현 변경을 다시 확인하고, 확인되지 않은 컴활 출제 수치나 제도는 공개하지 않습니다.