모두CBT

다음 중 아래의 VBA 코드에 대한 설명으로 옳지 않은 것은?Priva… | [컴퓨터활용능력 1급 필기] 19년 1회차 기출문제 상세 페이지

1[컴퓨터활용능력 1급 필기] 19년 1회차
다음 중 아래의 VBA 코드에 대한 설명으로 옳지 않은 것은?

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("a1").Address Then
    Target.Font.ColorIndex = 5
    MsgBox Range("a1").Value & "입니다."
End If
End Sub

1
일반 모듈이 아닌 워크시트 이벤트를 사용한 코드이다.
2
[A1] 셀을 선택하면 [A1] 셀의 값이 메시지 박스에 표시된다.
3
VBA 코드가 작성된 워크시트에서만 동작한다.
4
[A1] 셀이 변경되면 [A1] 셀의 글꼴 색이 ColorIndex가 5인 색으로 변경된다.
해설

Worksheet_Change는 해당 워크시트에서 셀 값이 바뀌었을 때 자동으로 실행되는 워크시트 이벤트 프로시저다. 일반 모듈이 아니라 그 시트의 시트 모듈에 작성되며, 그래서 코드가 들어 있는 워크시트에서 일어난 변경에만 반응한다.

따라서 [A1] 셀을 선택하기만 해서는 아무 일도 일어나지 않는다. 셀을 클릭해 선택하는 동작에 반응시키려면 Worksheet_SelectionChange 이벤트를 써야 한다. 선택만으로 메시지 박스가 뜬다는 설명이 잘못된 이유다.

실제 동작은 이렇다. 값이 바뀐 셀의 주소가 [A1]과 같으면 Target.Font.ColorIndex = 5로 그 셀의 글꼴 색을 ColorIndex 5(파랑) 색으로 바꾸고, 이어서 MsgBox가 Range("a1").Value 뒤에 "입니다."를 붙인 문자열을 메시지 박스로 표시한다.

내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.