모두CBT

워크시트 상에서 B열의 셀이 선택되었을 때 '대분류'라는 이름으로 정의… | [컴퓨터활용능력 1급 필기] 11년 2회차 기출문제 상세 페이지

1[컴퓨터활용능력 1급 필기] 11년 2회차
워크시트 상에서 B열의 셀이 선택되었을 때 '대분류'라는 이름으로 정의되어진 영역의 목록과 비교하여 일정한 작업을 하려고 한다. 다음 VBA 코드 중 (가), (나)에 들어갈 알맞은 코드는?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rngCell As Range
If (가) Then
        For (나)
                If (특정조건) Then
                        …….
                Exit For
        End If
Next rngCell
End If
End Sub
1
(가) ActiveCell.Column=B (나) Each rngCell In "대분류"
2
(가) ActiveCell.Column=2 (나) Each rngCell In [대분류]
3
(가) ActiveCell.Row=2 (나) All rngCell In [대분류]
4
(가) ActiveCell.Columns=2 (나) All rngCell In (대분류)
해설

제시된 코드는 Worksheet_SelectionChange 이벤트 프로시저로, 선택한 셀이 B열일 때만 '대분류' 이름 영역의 셀을 하나씩 훑으면서 특정 조건을 만나면 반복을 빠져나가는 구조다.

(가)에는 선택된 셀이 B열인지 판단하는 조건이 들어간다. ActiveCell.Column 은 열을 숫자로 돌려주므로 B열은 2와 비교해야 한다. "B" 같은 문자와 비교하거나 Columns처럼 복수형 속성을 쓰면 원하는 판단이 되지 않고, 행 번호를 뜻하는 Row로 비교하는 것도 문제의 뜻과 다르다.

(나)는 아래쪽의 Next rngCell 과 짝을 이루는 반복문이므로 For Each … In … 형식이어야 한다. VBA에서 정의된 이름을 범위 개체로 참조할 때는 대괄호를 써서 [대분류] 로 적으므로 Each rngCell In [대분류] 가 들어간다. 이름을 큰따옴표 문자열이나 소괄호로 적으면 범위 개체가 되지 않으며, All 은 VBA 반복문에 없는 키워드다.

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