Worksheet 개체

PageSetup 속성

노만e 2025. 3. 12. 06:50

 

엑셀 VBA에서 PageSetup 속성은 인쇄 설정을 조정하는 기능을 제공합니다.

즉, 여백, 방향, 크기, 인쇄 영역, 머리글/바닥글 등을 설정할 때 사용됩니다.

 


1. 기본 문법

Sheets("시트이름").PageSetup.속성 = 값
  • 속성 → 인쇄 관련 설정 (Orientation, PrintArea, Zoom, FitToPagesWide, FitToPagesTall, CenterHorizontally, CenterVertically, 등)
  • → 원하는 설정 값 (True/False, 숫자, 문자열 등)

📌 PageSetup은 ActiveSheet.PageSetup처럼 현재 활성화된 시트에서도 사용 가능

📌 설정이 많기 때문에 With 문을 사용하면 코드가 간결해짐


2. 인쇄 방향 설정

Sub 인쇄방향_설정()
ActiveSheet.PageSetup.Orientation = xlLandscape ' 가로 방향
End Sub

📌 인쇄 방향을 가로(xlLandscape)로 설정

📌 세로 방향으로 설정하려면 xlPortrait 사용


3. 인쇄 영역 설정

Sub 인쇄영역_설정()
ActiveSheet.PageSetup.PrintArea = "A1:D20"
End Sub

📌 A1:D20을 인쇄 영역으로 지정 (이 영역만 인쇄됨)

📌 모든 셀을 인쇄하려면 PrintArea = ""로 설정


4. 여백 설정 (단위: 포인트)

Sub 여백_설정()
With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(0.5)
.RightMargin = Application.InchesToPoints(0.5)
.TopMargin = Application.InchesToPoints(1)
.BottomMargin = Application.InchesToPoints(1)
End With
End Sub

📌 단위는 포인트(Points), InchesToPoints(인치)를 사용하여 변환 가능

📌 예: 0.5인치 = Application.InchesToPoints(0.5)


5. 용지 크기 설정

Sub 용지크기_설정()
ActiveSheet.PageSetup.PaperSize = xlPaperA4
End Sub

📌 용지 크기를 A4로 설정

📌 xlPaperLetter → 레터 크기(8.5 x 11 인치)

📌 xlPaperLegal → 리갈 크기(8.5 x 14 인치)


6. 확대/축소 비율 설정

Sub 확대축소_설정()
ActiveSheet.PageSetup.Zoom = 80 ' 80%로 축소
End Sub

📌 출력 크기를 80%로 설정 (확대/축소 가능, 10~400%)

📌 Zoom = False 설정 후 FitToPagesWide 및 FitToPagesTall을 사용할 수도 있음


7. 한 페이지에 맞게 자동 조정

Sub 한페이지에맞추기()
With ActiveSheet.PageSetup
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
End Sub

📌 출력을 한 페이지에 맞게 자동 조정 (FitToPagesWide = 1, FitToPagesTall = 1)

📌 가로만 한 페이지에 맞추고 세로는 자동 조정하려면 FitToPagesTall = False


8. 머리글 및 바닥글 설정

Sub 머리글바닥글_설정()
With ActiveSheet.PageSetup
.CenterHeader = "보고서 제목"
.CenterFooter = "페이지 &P / &N"
End With
End Sub

📌 머리글과 바닥글 설정 (&P = 현재 페이지, &N = 전체 페이지 수)


9. 인쇄 시 가로 및 세로 중앙 정렬

Sub 중앙정렬_설정()
With ActiveSheet.PageSetup
.CenterHorizontally = True ' 가로 중앙 정렬
.CenterVertically = True ' 세로 중앙 정렬
End With
End Sub

📌 출력 시 가로 및 세로 중앙 정렬 설정


10. 제목 행 반복 (첫 번째 행)

Sub 제목반복_설정()
ActiveSheet.PageSetup.PrintTitleRows = "$1:$1"
End Sub

📌 모든 페이지에서 1행을 제목 행으로 반복 출력

📌 열을 반복하려면 PrintTitleColumns = "$A:$A"


11. 눈금선 인쇄 설정

Sub 눈금선_인쇄()
ActiveSheet.PageSetup.PrintGridlines = True
End Sub

📌 눈금선 포함하여 인쇄 (True = 인쇄, False = 미인쇄)


12. 흑백 인쇄 설정

Sub 흑백_인쇄()
ActiveSheet.PageSetup.BlackAndWhite = True
End Sub

📌 흑백으로 인쇄 설정 (True = 흑백 인쇄, False = 컬러 인쇄)


13. 행 번호 및 열 문자 포함하여 인쇄

Sub 행번호열문자_인쇄()
ActiveSheet.PageSetup.PrintHeadings = True
End Sub

📌 출력할 때 엑셀의 행 번호(1,2,3...)와 열 문자(A,B,C...)도 인쇄됨


14. 사용자가 설정한 모든 인쇄 설정 초기화

Sub 인쇄설정_초기화()
ActiveSheet.PageSetup.PrintArea = ""
ActiveSheet.PageSetup.PrintTitleRows = ""
ActiveSheet.PageSetup.PrintTitleColumns = ""
End Sub

📌 사용자가 설정한 인쇄 범위 및 제목 행/열 설정 초기화


15. 모든 시트에 인쇄 설정 적용

Sub 모든시트_인쇄설정()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Sheets
With ws.PageSetup
.Orientation = xlLandscape
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
Next ws
End Sub

📌 모든 시트의 인쇄 방향을 가로(xlLandscape)로 설정하고, 한 페이지에 맞게 자동 조정


📝 정리

기능
VBA 코드
인쇄 방향 설정 (가로/세로)
.Orientation = xlLandscape
인쇄 영역 설정
.PrintArea = "A1:D20"
여백 설정
.LeftMargin = Application.InchesToPoints(0.5)
용지 크기 설정 (A4)
.PaperSize = xlPaperA4
확대/축소 설정 (80%)
.Zoom = 80
한 페이지에 맞추기
.FitToPagesWide = 1, .FitToPagesTall = 1
머리글 설정
.CenterHeader = "제목"
바닥글 설정 (페이지 번호 포함)
.CenterFooter = "페이지 &P / &N"
출력 중앙 정렬
.CenterHorizontally = True, .CenterVertically = True
제목 행 반복
.PrintTitleRows = "$1:$1"
눈금선 포함 인쇄
.PrintGridlines = True
흑백 인쇄
.BlackAndWhite = True
행/열 헤더 포함 인쇄
.PrintHeadings = True
모든 시트에 인쇄 설정 적용
For Each ws In Sheets: ws.PageSetup...

🔥 VBA의 PageSetup을 활용하면 엑셀의 인쇄 설정을 자동화할 수 있습니다! 🚀