VBA (1) 매크로 기록 연습
VBA이전 포스팅에는 엑셀에 개발도구를 추가하고 매크로의 기록, 정지, 코드 확인하는 과정에 대해서 설명했다. 이번 포스팅의 주제는 간단하다. 매크로 기록을 연습하고, 사용해 보는 과정이다. 이 과정을 충분히 거치고 다음 주제로 넘어가길 추천한다.
엑셀 버전 : MS Excel 2013
이번엔 아무거나 기록하지 말고 쓸만한 무언가를 기록한다. 각자 '쓸만하다'의 기준이 다르겠지만, 셀의 글자 크기를 15pt로 하는 매크로를 작성하겠다.
A3
셀에 "Hi Hello"라고 입력한다.- 매크로 기록 시작
- 글자 크기를 15pt 로 변경
- 매크로 기록 중지
여기 까지 했다면 셀의 글자 크기를 15pt로 하는 매크로를 잘 작성한 것이다. 이제 이 매크로를 사용해보겠다.
C5
셀에 "TEST"라고 입력한다.- 단축키
Alt + F8
을 입력하여 매크로 실행 창을 띄운다. - 위에서 지정한 매크로를 실행한다.
C5
셀의 글자 크기가 15pt로 변경되는 것을 확인한다.
잘 되었을 수도 있고, 그렇지 않을 수도 있다. 사실 프로그래밍에서 많이 배울 때는 에러나 버그를 고치는 과정이라고 생각하기 때문에 잘 안되었다면 더욱 환영이다.
만약 C5
셀이 전혀 반응이 없다면 매크로가 A3
셀 전용(?)의 매크로가 생성된 것인지 확인해볼 필요가 있다. 확인하는 방법은 간단한데, A3
셀의 글자 크기를 10pt로 변경한 후 커서를 C5
에 놓고 매크로를 실행시키는 것이다. 이 때 A3
셀의 글자 크기가 15pt로 변경된다면 위에서 기록한 매크로가 A3
셀의 글자 크기만 15pt로 변경하는 매크로로 기록된 것이다.
이렇게 된 원인은 매크로 기록에 불순물?이 끼어들어갔기 때문이다. 아래와 같은 순서로 매크로를 기록했다고 가정해보자. (실제로 따라 하면 더욱 좋다.)
가정1
A3
셀에 "Hi Hello"라고 입력한다.- 매크로 기록 시작
- 커서를 다른 셀로 옮긴다.
- 커서를
A3
셀에 놓는다. - 글자 크기를 15pt로 변경
- 매크로 기록 중지
가정2
- 매크로 기록 시작
- 커서를
A3
셀에 놓는다. A3
셀에 "Hi Hello"라고 입력한다.- 글자 크기를 15pt로 변경
- 매크로 기록 중지
다시 한번 상기하면 매크로는 사용자의 행동을 빠짐없이 기록한다. 가정1의 매크로가 실행되면 커서를 다른 셀로 옮긴 후 A3
로 옮기는 과정부터 시작한다. 그 이후에 글자 크기를 15pt 로 변경하게 된다. 가정2의 매크로는 실행되면 A3
에 커서를 놓고 "Hi Hello"라고 쓴 다음 글자 크기를 15pt로 변경한다.
따라서 C5
셀에 커서를 놓은 후 매크로를 실행시켜도 매크로는 A3
에 커서를 다시 옮기게 된다.
느끼고 있겠지만 매크로 기록을 할 때에는 불필요한 행동을 하면 안 된다. 정확히 원하는 기능만 기록해야 한다. 셀의 글자 크기를 15pt로 바꾸고 싶으면 글자 크기만 15pt로 바꾸는 행동만 기록해야 한다. 가정들처럼 (미처 인지하지 못했지만) 원하는 작업 이외의 다른 행동을 입력하게 되면 오 동작을 유발할 수 있다.
글자 크기 변경 같은 연습할 수 있는 주제들을 소개해본다. 아래 목록들도 함께 연습하면서 동작을 확인하면 좋을 것 같다. 여러 셀을 선택하고 매크로를 실행했을 때의 경우도 확인하면 좋겠다.
- 선택한 셀의 셀 병합
- 스타일 입력 (좋음, 보통, 나쁨 등등)
- 가운데 맞춤 (가운데 정렬)
- 서식 변경 (통화, 날짜, 백분율)
- 데이터 삭제 (안의 내용만 삭제)
- 행 삭제, 열 삭제, 셀 삭제