• 최초 작성일: 2001-05-11
  • 최종 수정일: 2026-09-30
  • 조회수: 11 회
  • 작성자: 권현욱 (엑셀러)
  • 강의 제목: 머리말 다르게 지정하기

들어가기 전에

오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.

이번 시간에는 게시판에 올라온 질문을 살펴봅니다.

오랜만에 들어 왔습니다. 그동안 잘 지내셨는지요?
질문 하나 드립니다.

시트에 머리말이나 꼬리말을 지정하면 시트 전체에 적용되지 않습니까?
그런데 이것을 홀수 쪽에 회사 이름을, 짝수 쪽에는 부서명을 지정할 수 있는지요?
방법이 있으면 꼭 좀 알려 주세요. 말도 안되는 질문인가요??

고수님의 지도를 갈구하는 하수가...

엉뚱해 보이는 질문이 새로운 것을 만들어 냅니다. 또한 항상 새로운 시각으로 문제를 바라보려고 노력해야 창의적인 아이디어가 나오는 법이지요. 그리고 이 세상에 '어리석은 질문'이란 없다고 생각합니다. 받아 들이는 사람이 어떻게 반응하느냐에 따라 달라지는 것이지요. '사과가 왜 땅에 떨어질까?'하는 어리석은 의문을 품지 않았던들 만유인력은 빛을 보지 못했을 것입니다(논리의 비약인가? ^^). 하여튼... 중요한 것은 좀 엉뚱해 보이는 질문이라도 주저말고 하시라는 것입니다.

권현욱(엑셀러)
저자: 권현욱(엑셀러), 아이엑셀러 대표

필자는 Excel 컨설턴트, 작가, 그리고 크리에이터입니다. 현재 Microsoft Excel MVP이며, 『챗GPT+엑셀 업무자동화 정석』을 비롯한 10여 권의 도서를 집필했습니다. Excel 자동화 및 생산성 향상 분야에서 25년 넘는 경력을 보유하고 있습니다.

권현욱(엑셀러) 님의 최신 포스트:
  • 최신 글을 불러오는 중...


26년 경력 Microsoft MVP 권현욱(엑셀러) 대표 직강 1강 무료

🎁 파워툴스 마스터클래스 · 엑셀 바이브 코딩

AI에게 말로 지시해서 '나만의 엑셀 도구'를 만들고 리본에 장착합니다.

  • 코딩 지식 없이 시작 · 코드는 AI가 작성
  • 엑셀 리본에 내 탭과 버튼을 만들고 XLAM으로 공유
  • 1강 무료 수강 가능
수강 신청하기 강의 소개 보기

머리말 다르게 지정하기

핵심 요약: 홀짝 페이지 머리말

전체 페이지 수만큼 순환하며 Mod 2로 홀짝을 구분해 CenterHeader를 바꾸고 해당 페이지만 인쇄하면 페이지마다 다른 머리말을 넣을 수 있습니다.

  • 1단계: ExecuteExcel4Macro("Get.Document(50)")로 전체 페이지 수를 구합니다.
  • 2단계: i Mod 2로 홀수와 짝수 페이지를 구분해 CenterHeader를 지정합니다.
  • 3단계: PrintOut from:=i, To:=i로 페이지별로 미리보기하거나 출력합니다.

Step 1: 홀수·짝수 페이지 머리말 다르게 지정하기

VB0091 강좌에서 '홀수 짝수 페이지 인쇄하기'에 대해 설명 드렸습니다. 이번 시간에는 홀수 페이지와 짝수 페이지에 머리말을 서로 다르게 설정하는 방법에 대해 소개해 드립니다. 유인물이나 소책자를 제작하는 분들에게는 유익할 것 같습니다. 일단 아래 버튼을 눌러 보세요.

홀수 페이지에는 파일 이름이, 짝수 페이지에는 현재 날짜와 시간이 표시되지요?

Step 2: ApplyDifferentHeader 프로시저

Sub ApplyDifferentHeader()
    Dim i As Integer
    Dim intTotalPage As Integer
    intTotalPage = ExecuteExcel4Macro("Get.Document(50)")
    '//변수를 먼저 선언해 주었습니다. 변수 중에 intTotalPage 변수는 현재 워크시트이 전체 페이지 수를
    '//파악해서 저장하기 위한 변수입니다. 전체 페이지 수를 파악하기 위해서는 일반 워크시트 함수로는
    '//되지 않으므로 Excel4 Macro 함수를 사용했습니다. 이 함수에 대한 자세한 설명은 VB0091 강좌를
    '//참고하시기 바랍니다.

    With ActiveSheet.PageSetup
        For i = 1 To intTotalPage
        '//전체 페이지 수만큼 순환문을 돌면서 페이지 머리말을 설정합니다. 이 때 Mod 함수를 사용하면 짝수
        '//페이지와 홀수 페이지를 구분해 낼 수 있겠지요?

            If i Mod 2 = 0 Then
                .CenterHeader = "&8&D &T"
            '//현재 페이지 번호를 2로 나눈 나머지가 0이라는 것은 짝수 페이지라는 의미입니다. 따라서 짝수
            '//페이지에는 8포인트 크기의 날짜와 시간을 표시합니다.

            Else
                .CenterHeader = "&8&F"
            '//그 이외의 경우, 그러니까 당연히 홀수 페이지가 되겠는데... 홀수 페이지에는 8포인트 크기의
            '//파일 이름을 표시합니다.

            End If
        ActiveSheet.PrintOut from:=i, To:=i, preview:=True
        '//머리말 지정 작업이 끝나면 각 페이지마다 미리보기를 합니다. 만약 바로 프린터로 출력하려면
        '//ActiveSheet.PrintOut from:=i, To:=i, preview:=False 로 하시면 됩니다.

        Next i
    End With
End Sub

마무리

요즘 Exceller가 개인적인 일이 좀 있어서 강좌도 가끔 빼먹기도 하고, 질문에 답변도 제때에 못 드리고 그렇습니다. 아마 다음달 초까지는 어쩔 수 없을 듯 싶습니다. 메일로 질문을 하시면 답변을 못 받으실 확률이 높습니다. 6월까지는 게시판을 적극 활용해 주시면 좋겠습니다. 그리고 불가피하게 메일을 보내실 분은 질문을 가급적 서술식으로 상세히 설명해 주시고 시트 내에 자신의 메일 주소를 반드시 표시해 주시면 도움이 되겠습니다.

어느덧 주말입니다. Have a Nice Weekend!!!

다음 시간에 또...

정리 — 홀짝 머리말 핵심

구분 사용한 코드 역할
전체 페이지 수 ExecuteExcel4Macro("Get.Document(50)") 시트의 총 페이지 수
홀짝 구분 If i Mod 2 = 0 Then 짝수 페이지 판별
짝수 머리말 .CenterHeader = "&8&D &T" 8포인트 날짜와 시간
홀수 머리말 .CenterHeader = "&8&F" 8포인트 파일 이름
페이지별 출력 PrintOut from:=i, To:=i, preview:=True 한 페이지씩 미리보기

자주 묻는 질문 (FAQ)

Q1. 홀수 페이지와 짝수 페이지의 머리말을 다르게 하려면?

페이지마다 머리말을 바꿔 가며 해당 페이지만 출력하는 방식으로 구현할 수 있습니다.

Q2. 워크시트의 전체 페이지 수는 어떻게 구하나요?

ExecuteExcel4Macro("Get.Document(50)")를 사용합니다.

Q3. 바로 프린터로 출력하려면?

PrintOut의 preview 인수를 False로 지정합니다.

마치며

Excel4 매크로 함수와 Mod 연산자를 조합하면 홀수·짝수 페이지에 서로 다른 머리말을 넣을 수 있습니다.