티스토리 뷰

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

엑셀 VBA 매크로에 관한 문제이다. 셀 선택과 서식 지정에 잘못된 명령을 찾아보자.


27. 다음 중 A열의 글꼴 서식을 '굵게'로 설정하는 매크로로 옳지 않은 것은?


① Range("A:A").Font.Bold = True

② Columns(1).Font.Bold = True

Range("1:1").Font.Bold = True

④ Columns("A").Font.Bold = True


풀이 :


엑셀 VBA 매크로를 이용하여 시트의 한 열에 서식을 지정하려한다. 무엇이 가장 먼저일까? 3초만 생각해 보라.

가장 먼저는 1열을 선택하는 VBA 코드로 셀 개체를 선택하는 것이다. 워크시트에서의 작업과 같다.


참고1 : 매크로 기록과 편집의 실행단계에 관해서는 다음 링크를 참조하자.


관련 링크 : [필기 풀이] 컴활2급 기출풀이 2016년1회-30번 엑셀 매크로 기초


엑셀 VBA 매크로 열 선택 서식 지정 풀이


하나의 열 전체에 굵게 속성을 지정해 보자.


[그림1] 엑셀 VBA 매크로 열 전체 서식 지정[그림1] 엑셀 VBA 매크로 열 전체 서식 지정



1번) Range("A:A") 는 A열 선택


엑셀 VBA 매크로에서 Range 라는 코드는 셀, 행, 열, 선택범위 를 지정하는 워크시트(Worksheets) 개체에 따르는 속성이다. 이 Range 속성에 "A:A" 인수가 주어졌다. 이는 'A열부터 A열까지' 를 말한다. 곧, A열 전체를 지정하겠다는 것이다.


이렇게 선택된 Range 로 반환된 A열 개체에 글꼴 관련 속성인 Font 를 지정한다. 마지막으로, Font 속성의 하위인 Bold 속성을 True 로 설정하여 "A열 전체의 글꼴을 굵게로 표시하는 것이다"


Range("A:A").Font.Bold = True


열 선택과 굵게 지정을 위한 바른 VBA 매크로 구문이다.


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


2번) Columns(1) 은 시트 1번째 열 선택


이번에는 열 선택을 위해 VBA 매크로에서 Columns 속성을 사용한다. 이 Columns 는 인수로 주어지는 열을 선택한다. 보기에서 주어진 인수, 1 이 의미하는 것은 시트의 1번째 열을 말한다. 즉, A열을 개체로 지정하고 그에 따른 속성을 지정하겠다는 것이다.


나머지 폰트 속성 설정( 개체.Font.Bold = True ) 은 1번) 보기와 같다.  그래서, "시트의 1번째 열의 글꼴을 Bold 로 표시하는 것이다"


Columns(1).Font.Bold = True


열 전체 선택이기에 가능한 VBA 매크로 구문이다.


참고2 : VBA 매크로 Columns 는 엑셀 함수 Columns 와는 용법이 비슷하지만 다르다.


3번) Range("1:1") 은 1행 선택


1번) 보기와 같은 Range 속성이다. 인수로는 "1:1" 이 전달되었다. 이는 '1행에서 1행까지' 를 의미한다. 시트의 1 전체를 개체로 얻는 것이다. 굵게 서식을 지정하는 뒤의 Bold 속성 설정은 역시 같다. ( 개체.Font.Bold = True )


"시트의 1행 전체의 글꼴 속성에 '굵게' 를 추가 하라는 것이다" .


Range("1:1").Font.Bold = True


문제는 1열(A열) 전체에 대한 글꼴 변경이다. 그런데, 이번 VBA 구문은 1행을 선택 범위로 한다. 따라서, 이는 문제가 원하는 VBA 매크로가 아니다.


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


4번) Columns("A") 은 시트의 A열 선택


열 개체를 선택하는 속성 Columns 으로 "A" 라는 인수가 전달되었다. 이는 시트의 열머리글에서 A열을 말한다. A열 전체에 '굵게' 라는 글꼴 속성을 지정하는 것이다.


"A열 전체에 굵게 속성을 지정한다."


Columns("A").Font.Bold = True


참고로, Columns(1) 과 Columns("A") 는 워크시트 하위 속성일 때는 모두 동일하게 사용된다. 시트 1번째 열이 A열이기 때문이다.


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


참고3 : 개체.Font.Bold 의 속성값으로 False 가 주어지면, '굵게' 지정되었던 글꼴들은 '보통' 으로 바뀌게 된다. [그림1 마지막 주석]



이 엑셀 VBA 매크로 문제에서의 핵심은 셀 선택을 코드로 바르게 지정하는 것이다. 문제에서는 열 개체와 행 개체의 선택에 Range, Columns 속성이 사용되었다. 추가로 Cells, offset 속성도 매크로 개체 선택에 자주 사용된다.


관련 문제 : [필기 풀이] 컴활2급 기출 2016년3회-32번 엑셀 상대참조 매크로


정답 : 3번


이전 문제 :

[필기 풀이] 컴활1급 기출문제 2017년2회-26번 엑셀 분석형 차트


마늘빵.

댓글