티스토리 뷰

컴퓨터활용능력 2006년도 1회 필기 기출 문제 32번을 풀이한 것이다. 문제에서 요구하는 바른 엑셀 매크로 명령 코드를 찾는 문제이다.

32. 다음 중 현재 셀의 위치를 기준으로 아래로 3행, 왼쪽으로 1열 이동한 위치 셀에 데이터 3300을 입력하는 매크로 명령으로 맞는 것은?

① ActiveCell.Offset(3,1).Value = 3300
② ActiveCell.Offset(-3,-1).Value = 3300
ActiveCell.Offset(3,-1).Value = 3300
④ ActiveCell.Offset(-3,1).Value = 3300

풀이:

엑셀의 또 다른 매크로, VBA 들어가기

엑셀에서 매크로는 간단하게 과정을 기록하는 방법( 매크로 기록 )과 문제와 같이 모듈로 코드를 작성하는 방법( Visual Basic for Application : VBA )이 있다.

[필기 풀이] 컴활2급 기출문제 2006년1회-27번 엑셀 매크로 기록 :
http://secstart.tistory.com/790

'매크로 기록' 은 엑셀을 사용하는 많은 이들이 쉽게 배우고 사용할 수 있을 것이다. 그러나 VBA 는 위와 같이 코드로 작성되기에 많은 엑셀 사용자는 어렵게 느낄 수 있다.

위의 문제를 풀어 보면서 VBA 가 무엇인지 배우고 가까워져 보면 그리 어려운 것만은 아닐 것이다. 참고로 쉽게 느끼는 매크로 기록도 내부적으로는 VBA 의 모듈로 작성된다는 것을 알아야 할 것이다. 그렇다면 VBA 모듈은 어디서 작성하는가?

엑셀 리본 메뉴 > 보기 > 매크로 > 매크로 보기 창을 열고 '매크로 이름' 을 입력하고 '만들기' 한다면 VBA 창이 열린다. 여기서 아래의 코드를 작성하는 것이다. ( VBA 창 단축키 : ALT+F11 )

[그림1] 엑셀 매크로 보기 창 - VBA 열기[그림1] 엑셀 매크로 보기 창 - VBA 열기



[엑셀 기초] 작업 효율 향상을 위한 필수 기본 단축키 모음 :
http://secstart.tistory.com/727

엑셀 VBA 코드 작성하기

이제, 위의 문제를 풀어 보자. 먼저, 위의 보기에 사용된 코드를 단계별로 분석해 본다.

- ActiveCell : 이는 현재 활성 상태인 셀 위치를 말한다. 범위로 지정되어도 활성 셀은 하나이다. 보다 쉽게 활성 셀이란, 수식 입력줄에 데이터 입력시 값이 표시되는 셀이다.
- Offset( 행, 열 ) : 이는 행과 열로 주어진 숫자 만큼 셀 위치를 상대 이동하라는 명령이다. 음수는 행인 경우 위로, 열인 경우 왼쪽으로 이동한다.
- Value : 셀의 값을 의미한다.

이 매크로 코드를 이용하여 문제가 요구하는 부분을 작성해 보자.

1. 문제의 '현재 셀의 위치를 기준으로' 부분 :
ActiveCell 명령은 현재 셀 개체를 가져온다. 이 셀 개체로 해당 셀에 정보를 전달하거나 명령을 실행할 수 있다.

2. 문제의 '아래로 3행, 왼쪽으로 1열 이동한 위치' 부분 :
Offset 함수는 행 열의 상대 위치를 전달하여 셀 이동한다. 아래로 3행은 양수 3 이 되고, 왼쪽으로 1열은 -1 이 된다. 즉, Offset( 3, -1 ) 이 된다.
참고로 부호는 위와 오른쪽으로 이동하였다면 음수와 양수가 될 것이다. 엑셀 OFFSET 함수와는 조금은 다르다.

[컴활 1급] 기준점에서의 상대 위치, 엑셀 OFFSET 함수 :
http://secstart.tistory.com/632

3. 문제의 '셀에 데이터' 부분 :
Value 속성의 으로 3300 을 입력한다.

1의 코드에서 기준 개체를 얻고, 2의 코드로 이동한 다음, 3의 코드로 값을 입력하는 것이다.
이상의 매크로 명령을 이어서 작성하면 다음과 같다.

ActiveCell.Offset( 3, -1 ).Value = 3300

3번 보기가 정답이 되는 것이다. 이제 이를 확인해 보자.

문제의 VBA 실행하기

위의 코드를 작성된 매크로의 VBA Sub 모듈에 입력한다.

[그림2] 엑셀 VBA 작성 코드[그림2] 엑셀 VBA 작성 코드



'실행' 은 [그림2] 에서 F5 단축키로 하여도 되고, [그림1] 의 '매크로 보기' 창을 열고 실행해 보아도 된다. 이것이 엑셀 VBA 이다.
( '매크로4' 는 '매크로 기록' 으로 작성되어도 실제로는 이렇게 VBA 코드로 처리됨을 보여주는 예이다. )

엑셀의 VBA 는 비주얼베이직( Visual Basic ) 이라는 프로그래밍 언어의 기본 틀을 따른다. VB 의 기본 코드 작성 방법은 개체.명령이나 속성 으로 구성되며 개체에 따른 명령을 실행하거나 속성을 입력하는 것이다.

컴활 2급을 준비하는 이들 중 '아~ 머리 아퍼...' 이러하다면 문제를 버리고 다른 문제에 시간을 투자하는 것이 바람직할 것이다. 이는 1급 수준의 문제이고 따라서, 너무도 가끔 출제되므로 간단하게 익혀두자.

정답 : 3번

엑셀 매크로 기록 관련 :
컴활 2급 실기 2007년 3회 A형 기출 풀이 - 기타작업 :
http://secstart.tistory.com/214
컴활 2급 실기 2006년 1회 A형 기출 풀이 - 기타작업 :
http://secstart.tistory.com/206

[필기 풀이] 컴활2급 기출문제 2006년1회-31번 엑셀 숨기기 취소 :
http://secstart.tistory.com/797

마늘빵.


댓글