엑셀 함수 - VBA 명령문 (UDF)인쇄 페이지 설정 방법

인쇄 페이지 설정 자동화 :: Page_Setup 명령문 (VBA)

예제파일
엑셀 예제파일 다운로드_아이콘

요약

Page_Setup 명령문을 작성하여 인쇄 페이지 설정을 자동화 하는 방법을 알아봅니다.

설명

Page_Setup 명령문을 작성하여 인쇄 페이지 설정 자동화를 구현합니다. 인쇄 페이지 설정을 VBA 매크로로 구현하는데에는 2가지 방법이 있습니다.

  • 워크시트의 PageSetup 속성을 사용
  • 내장함수인 ExecuteExcel4Macro 함수를 사용

시트의 PageSetup 속성을 사용할 경우 명령문 동작속도에 치명적인 영향을 줍니다. 따라서, 본 명령문은 내장함수인 ExecuteExcel4Macro 함수를 사용하여 작성합니다.

다만, ExecuteExcel4Macro는 엑셀 2003 이전 버전에 작성된 함수로, '한 페이지에 모든 행 맞추기' 또는 '한 페이지에 모든 열 맞추기' 기능을 지원하지 않습니다. 따라서 '한 페이지에 모든 열/행 맞추기' 기능은 시트의 PagetSetup 속성으로 설정합니다.

" PAGE.SETUP 설정을 위해 들어가는 인수는 20개며 전체 목록은 포스트 하단에 자세히 적어드렸습니다. "

Page_Setup 명령문과 인쇄 페이지 설정에 관련된 영상 강의는 아래에 준비되어있습니다.

엑셀 PDF 자동 저장 프로그램 만들기 썸네일
이번 강의에서는 엑셀 PDF 자동 저장 매크로를 작성하고 선택된 범위 또는 지정한 시트를 PDF로 자동으로 출력하는 방법을 알아봅니다. 아울러 PDF ... 더 보기
엑셀 메일 보내기 vba 매크로 만들기 썸네일_800
이번 강의에서는 엑셀 메일 보내기 자동화 매크로를 작성해보겠습니다. 엑셀과 아웃룩을 연동하여 메일 보내기 자동화 프로그램을 만들면, VBA에서 기본으로 제공하는 아웃룩 ... 더 보기

VBA 전체 명령문

명령문에 사용된 인수

인수데이터타입설명기본값
wsWorkSheet페이지 레이아웃 설정을 변경할 시트입니다.
LHeadString좌측에 들어갈 머릿말입니다.
RHeadString우측에 들어갈 머릿말입니다.일자 / 시간
LFootString좌측에 들어갈 꼬릿말입니다.본 페이지의 무단 복제를 금합니다.
RFootString우측에 들어갈 꼬릿말입니다.1 / N 페이지
eMarginePrintMargin용지 여백을 결정합니다.좁은여백
HFitBoolean한 페이지 모든 행 맞춤 설정 여부True
VFitBoolean한 페이지 모든 열 맞춤 설정 여부False
HCenterBoolean가운데 정렬 여부True
VCenterBoolean중앙 정렬 여부False
eOrientxlPageOrientation용지방향세로방향
eSizeePaperSize용지크기A4

세부내용

1. Enum을 통해 새로운 2개의 데이터타입을 생성합니다.
  • ePrintMargin : getPrintMargin 함수에서 인쇄 여백을 설정하기위한 데이터타입입니다.
  • ePaperSize : ExcelExecute4Marco 페이지설정 명령문에서 용지크기 설정을 위한 데이터타입

2. GetPrintMargin 명령문을 작성합니다.
  • GetPrintMargin 함수 : 사용자가 용지여백 종류를 선택하면, 여백 종류에 따른 값 수치를 배열로 반환하는 함수입니다.
  • GetPrintMargin 함수는 Page_Setup 함수의 보조함수로 사용됩니다.
  • 각 배열에 들어간 값은 ("왼쪽", "오른쪽", "위쪽", "아래쪽", "머릿말", "꼬릿말") 의 여백입니다.

3. Page_Setup 명령문을 작성합니다.

본 명령문에서는 주로 사용되는 페이지 레이아웃 설정만 명령문의 인수로 입력하였으며, 필요에 따라 원하는 인수를 추가해서 사용할 수 있습니다.

사용된 변수는 아래와 같습니다.

  • pSetup : ExcelExecute4Macro – Page.Setup 함수를 실행할 전제 명령문입니다. Page.Setup 명령문에 들어가는 인수의 종류 및 순서는 본 포스트 아래부분에 적어드린 인수목록을 참고하세요.
  • varMargin : GetPrintMargin 함수로 받아올 용지여백 값입니다. 예를들어 사용자가 xlNarrow (좁은여백) 을 선택할경우, (0.25, 0.25, 0.75, 0.75, 0.3, 0.3) 0.25, 0.25, 0.75, 0.75, 0.3, 0.3) 여백값을 반환합니다.
  • lngOrient : 용지 방향을 결정합니다. 세로방향일경우 1, 가로방향일경우 2를 반환합니다.

명령문의 빠른 동작을 위해 PrintCommunication 속성을 각 명령문의 시작과 끝부분에 넣어 변경합니다.

사용자가 용지여백을 '없음'으로 설정했을시, 머릿말과 꼬릿말이 있다면 출력부분과 내용이 겹치게 됩니다. 따라서 용지여백이 '없음'일 경우 머릿말과 꼬릿말을 공백으로 바꿔줍니다.

ExecuteExcel4Macro의 Page.Setup 함수에서는 '한 페이지 모든 행 맞추기' 설정을 할 수 없습니다. 따라서 '한 페이지 모든 행/열 맞추기' 설정이 필요할 경우 워크시트의 PageSetup 속성을 변경합니다. (PageSetup 속성을 많이 변경할 경우 명령문 동작 속도에 큰 영향이 있으므로 사용에 주의합니다.)

Page_Setup 명령문을 완성합니다.

ExecuteExcel4Macro 함수 PAGE.SETUP 인수 목록

  • 아래 인수들은 반드시 순서에 맞춰서 입력되어야 합니다.
  • 인수가 누락되거나 옳지 않은 값이 입력될경우 ExecuteExcel4Macro 명령문은 런타임오류(1004) 를 반환합니다.
인수설명
Head페이지 머릿말입니다. LHead는 좌측, RHead는 우측에 입력됩니다.
Foot페이지 꼬릿말입니다. LFoot은 좌측, RFoot은 우측에 입력됩니다.
pLeft좌측여백입니다. GetPrintMargin 함수에서 받아옵니다.
pRight우측여백입니다. GetPrintMargin 함수에서 받아옵니다.
Top상단여백입니다. GetPrintMargin 함수에서 받아옵니다.
Bot하단여백입니다. GetPrintMargin 함수에서 받아옵니다.
Head_Margin머릿말 여백입니다. GetPrintMargin 함수에서 받아옵니다.
Foot_Margin꼬릿말 여백입니다. GetPrintMargin 함수에서 받아옵니다.
Hdng특정 행/열을 반복출력할 여부를 결정합니다.
0 = 반복출력안함
1 = 반복출력
Grid눈금선 출력여부를 결정합니다.
True = 눈금선 출력
False = 눈금선 출력 안함
Notes메모 출력여부를 결정합니다.
True = 메모 출력
False = 메모 출력 안함
H_Cntr용지 가운데 정렬 여부를 결정합니다.
True = 가운데 정렬
False = 좌측정렬
V_Cntr용지 중앙 정렬 여부를 결정합니다.
True = 중앙정렬
False = 위쪽정렬
Orient용지출력방향을 결정합니다.
1 = 세로방향
2 = 가로방향
Paper_Size용지크기를 결정합니다.
1 = 편지용지
2 = 편지용지 (소)
8 = A3
9 = A4
10 = A4 (소)
11 = A5
12 = B4
13 = B5
16 = 10x14
17 = 11x17
18 = 노트
Pg_Num페이지 시작번호를 결정합니다.
Pg_Order페이지번호 매김방향을 결정합니다.
1 = 위-아래-우측 방향
2 = 좌-우-아래 방향
Quality인쇄 품질을 결정합니다. (Dot-Per-Inch 값으로 입력)
공백 = 자동설정
값 = Dot-Per-Inch 값에 따라 적용
bw_cells흑백 인쇄여부를 결정합니다.
True = 흑백인쇄
False = 칼라인쇄
pScale축소/확대비율을 결정합니다. (% 값으로 입력합니다)
TRUE = 한 페이지 모든 행/열 맞춤
100 = 원본비율

관련 기초함수 설명 | by 오빠두엑셀

인쇄 페이지 설정 방법
엑셀 Page_Setup 모듈 사용법 :: 페이지 레이아웃 설정
예제파일 Page_Setup 명령문을 작성하여 인쇄 페이지 설정을 자동화 하는 방법을 알아봅니다. Page_Setup 명령문을 작성하여 인쇄 페이지 설정 자동화를 구현합니다. 인쇄 ...
Application.ScreenUpdating 사용법
엑셀 VBA :: Application.ScreenUpdating 사용법 총정리 (매크로를 더욱 빠르게!)
예제파일 예제파일은 매크로가 포함되어 있습니다. 예제파일 실행 후 '컨텐츠 포함' 버튼을 클릭하여 매크로를 활성화합니다. 매크로를 활성화하는 방법은 '예제파일 매크로 활성화 ...

관련공식 포스트 | by 오빠두엑셀

글을 발견하지 못했습니다.

댓글 남기기

avatar
  현재 페이지 댓글알림 신청  
알림 설정