안녕하세요, 짤막한 강좌 한정희 강사입니다.
이번 강좌는 수업 시간에 김**님의 질문을 바탕으로 매크로 필요성과 절대 참조, 상대 참조 매크로 사용법을 익히기 좋을 것 같아 준비했습니다.
실습 파일 다운로드
현재 데이터를 보면 한 페이지에 명단이 모두 인쇄가 되도록 설정되어 있는데
각 명단을 페이지에 나누어 아래 그림과 같이 인쇄를 하려고 합니다.
먼저 페이지 나누기를 어떻게 하는지 보겠습니다.
1-1-1반 강만호 학생까지 페이지를 나누려고 한다면 아래 그림과 같이 [A5] 셀을 선택하고 [페이지 레이아웃] 탭 - [페이지 설정] 그룹] - [나누기] - [페이지 나누기 삽입]을 선택합니다.
한 번 더 해볼까요?
1-1-2 학생까지 나누고 싶다면 [A6] 셀을 선택하고 [페이지 레이아웃] 탭 - [페이지 설정] 그룹 - [나누기] - [페이지 나누기 삽입]을 선택합니다.
페이지 나누기를 하면 아래 그림과 같이 구분선을 확인할 수 있습니다.
인쇄 미리보기를 해볼까요?
첫 번째 페이지에 1-1-1 강만호 학생만 인쇄가 되었죠?
[다음 페이지] 버튼을 눌러 보겠습니다.
두 번째 페이지를 확인해보면 1-1-2 강재민 학생만 인쇄된 것을 알 수 있습니다.
이때 제목과 필드명(항목명)도 인쇄되도록 설정해 보겠습니다.
[페이지 레이아웃] 탭 - [페이지 설정] 그룹 - [인쇄 제목]을 선택합니다.
[페이지 설정] 대화 상자가 실행되면 [1:3] 행을 페이지마다 반복해서 인쇄되도록 설정해 보겠습니다.
[반복할 행] 입력 창에 커서를 두고 [A1:A3] 셀 범위를 드래그합니다.
$1:$3은 1행에서 3행 전체를 의미합니다.
다시 인쇄 미리보기를 해볼까요?
[파일] - [인쇄]를 선택합니다.
각 페이지별로 제목과 필드명이 반복해서 인쇄가 되죠?
그렇다면 위에서 설명한 것처럼 지금부터 각 명단을 각 페이지에 인쇄되도록 페이지 나누기를 해야 합니다.
하지만 페이지를 나눌 명단이 몇개 안된다면 앞에서 소개한 방법처럼 나누기를 하면 되지만 현재 나눌 학생 수가 87명이군요! 작업이 쉽지 않겠죠?
이렇게 반복되는 작업을 매크로를 사용한다면 간단하게 해결할 수 있습니다.
그럼 다시 실습 파일을 열고 매크로를 기록하는 방법을 소개하겠습니다.
[A5] 셀을 선택하고 [개발 도구] 탭 - [코드] 그룹 - [상대 참조로 기록]을 먼저 선택합니다.
그런 다음 [매크로 기록]을 선택합니다.
매크로 기록 대화 상자가 실행되면 [매크로 이름] 입력 창에 '페이지나누기'를 입력합니다.
매크로 이름은 자유롭게 사용할 수 있습니다.
단, 한글, 영어, 숫자 조합이 가능하지만 사이를 띄어 쓰면 안 됩니다.
특수 문자, 첫 번째 글자를 숫자로 사용해도 안됩니다.
그리고 바로 가기 키를 지정해서 페이지나누기를 바로 가기 키(단축키)를 눌러 빠르게 할 수 있도록 지정하겠습니다.
엑셀의 다른 단축키와 중복되지 않게 하려면 대문자를 사용하는 것이 좋습니다.
여기서는 Shift를 누르고 k를 눌러 대문자 K가 바로 가기 키가 되도록 설정했습니다.
[개발 도구] 탭 - [코드] 그룹 - [매크로 기록]이 [기록 중지]로 바뀌었는데 바로 매크로 기록 중인 상태가 됩니다.
앞에서 페이지 나누기 삽입을 충분히 연습했으니 지금부터 기록해 볼께요.
매크로 기록 상태에서는 마우스로 처리하는 모든 작업이 기록되기 때문에 기록 전에 매크로로 기록할 작업을 순서대로 잘 정리해서 연습을 해봐야 합니다.
[A5] 셀을 선택하고 [페이지 레이아웃] 탭 - [페이지 설정] 그룹 - [나누기] - [페이지 나누기 삽입]을 선택합니다.
페이지가 나누어지면 그 다음 셀 [A6] 셀을 선택하고 [개발 도구] 탭 - [코드] 그룹 - [기록 중지]를 선택합니다.
여기까지 바로 반복되는 작업을 매크로로 기록한 겁니다.
매크로 기록은 굉장히 간단하죠?
매크로는 단순히 기록과 중지, 상대 참조로 지정할 것인지, 절대 참조로 기록할 것인지 정도만 처리하는 작업입니다.
매크로 사용이 어려운 것이 아니고 엑셀로 원하는 작업을 처리하는 것이 어려운(?)거죠. 것을 학습해야 하는 거죠.
그럼 [A6]셀이 선택된 상태에서 페이지가 모두 나누어질 때까지 단축키 <Ctrl + Shift + k>를 누릅니다.
데이터가 아무리 많아도 빠르게 나누어 줍니다.
단축키를 누르면 선택된 셀 바로 위 행까지 페이지를 나누고 바로 아래 셀을 상대 참조하는 작업을 반복하게 됩니다.
만일 [상대 참조 매크로 기록]선택을 잊고 매크로를 기록했다면 절대 참조 매크로로 기록이 됩니다.
그럼 계속 1-1-1 강만호 학생 행까지 페이지 나누는 작업이 반복되겠죠?
이번 사례를 통해 매크로의 필요성과 상대 참조 매크로 기록 방법을 간단하게 배워봤습니다.
필요하신 분들께 도움이 되기를 바라며 마치겠습니다.
'매크로&VBA' 카테고리의 다른 글
시트의 내용을 다른 시트에 한꺼번에 간단히 복사하는 VBA (1) | 2020.05.19 |
---|---|
엑셀 매크로&VBA] 여러 시트 내용을 조회하고 수정하는 간단한 VBA (0) | 2020.04.12 |
엑셀 매크로&VBA] 고급 필터 매크로를 보완하는 VBA(변수와 InputBox 함수) (0) | 2020.04.02 |
엑셀 매크로&VBA] 고급 필터 매크로(조건을 변경할 때마다 결과 값이 자동으로 나오도록 매크로 설정하기) (2) | 2020.03.23 |
엑셀 매크로&VBA] 매크로를 보완하는 VBA (2) | 2020.03.23 |