오빠두엑셀 `2026 무료 챌린지` 오픈! 완주하고 수료증 받아가세요! 5년 연속 IT분야 베스트셀러! 「 진짜쓰는 실무엑셀 」로 2026년 공부 끝내기 엑셀이 막히셨나요? Q&A 게시판에서 바로 해결하세요.
메뉴

엑셀 Page_Setup 모듈 사용법 및 전체 명령문 :: 페이지 레이아웃 설정

지정한 시트의 머릿글, 여백 등의 인쇄영역을 설정하는 Page_Setup 모듈의 사용법 및 전체 명령문 동작원리를 알아봅니다.

작성자 :
오빠두엑셀
최종 수정일 : 2021. 10. 31. 17:10
URL 복사
메모 남기기 : (20)

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

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

요약

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

설명

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

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

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

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

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

Page_Setup 명령문과 인쇄 페이지 설정을 사용한 엑셀 PDF 추출 및 이메일 보내기 관련 영상 강의는 아래 링크를 확인하세요.

VBA 전체 명령문

Public Enum ePrintMargin
    xlNone = 0
    xlNarrow = 1
    xlNormal = 2
    xlWide = 3
End Enum
 
Public Enum ePaperSize
    xlA4 = 9
    xlA3 = 8
    xlLetter = 1
    xlA5 = 11
End Enum
 
Function getPrintMargin(eValue As ePrintMargin) As Variant
 
'// 설정된 eNum 값으로 페이지 여백설정을 위한 값을 배열로 나열합니다.
 
Select Case eValue
    Case 0
        getPrintMargin = Array(0.05, 0.05, 0.05, 0.05, 0.1, 0.1)
    Case 1
        getPrintMargin = Array(0.25, 0.25, 0.75, 0.75, 0.3, 0.3)
    Case 2
        getPrintMargin = Array(0.7, 0.7, 0.75, 0.75, 0.3, 0.3)
    Case 3
        getPrintMargin = Array(1, 1, 1, 1, 0.5, 0.5)
End Select
 
End Function
 
Sub Page_Setup(ws As Worksheet, Optional LHead As String = "", Optional RHead As String = "&D / &T", _
                Optional LFoot As String = "본 페이지의 무단복제를 금합니다.", Optional RFoot As String = "&P / &N 페이지", _
                Optional eMargin As ePrintMargin = xlNarrow, _
                Optional HFit As Boolean = True, Optional VFit As Boolean = False, _
                Optional HCenter As Boolean = True, Optional VCenter As Boolean = False, _
                Optional eOrient As XlPageOrientation = xlPortrait, Optional eSize As ePaperSize = xlA4)
 
Dim pSetup As String
Dim varMargin As Variant
Dim lngOrient As Integer
 
'// 인쇄설정 업데이트 중단 (속도증가)
Application.PrintCommunication = False
 
'// 인쇄여백값을 받아옵니다.
varMargin = getPrintMargin(eMargin)
 
'// 인쇄용지 방향을 설정합니다.
If eOrient = xlPortrait Then
    lngOrient = 1
Else
    lngOrient = 2
End If
 
'// ExecuteExcel4Macro 의 Page.Setup 명령문 실행을 위한 문구를 입력합니다.
Head = """&L" & LHead & "&R" & RHead & """"     '// 페이지 머릿말입니다.
Foot = """&L" & LFoot & "&R" & RFoot & """"     '// 페이지 꼬릿말입니다.
pLeft = varMargin(0)                            '// 왼쪽여백
pRight = varMargin(1)                           '// 오른쪽여백
Top = varMargin(2)                              '// 윗여백
Bot = varMargin(3)                              '// 아래여백
Head_margin = varMargin(4)                      '// 머릿말여백
Foot_margin = varMargin(5)                      '// 꼬릿말여백
Hdng = 0                                        '// 행/열반복 출력여부 0 = 반복출력안함 1 = 반복출력
Grid = False                                    '// 눈금선출력여부
Notes = False                                   '// 메모출력여부
H_cntr = HCenter                                '// 가운데정렬
V_cntr = VCenter                                '// 중앙정렬
Orient = lngOrient                              '// 문서방향, 1 = 세로 2 = 가로
Paper_size = eSize                              '// 용지크기
Pg_num = 1                                      '// 페이지 시작번호
Pg_order = 1                                    '// 페이지번호 순서, 1 = 위-아래-우 2 = 좌-우-아래
Quality = ""                                    '// 인쇄품질 (dot-per-inch로 입력) (공백 = 자동)
bw_cells = False                                '// 흑백인쇄여부, TRUE = 글자/테두리 검정,배경 흰색 FALSE = 색깔
pScale = 100                                    '// 축소/확대비율 또는 TRUE (Fit to Page)
 
'// 여백을 없음으로 설정할 경우 머릿말/꼬릿말을 삭제하여 인쇄영역과 겹치지 않도록 합니다.
If eMargin = xlNone Then
    Head = """"""
    Foot = """"""
End If
 
 
'// ExecuteExcel4Macro 명령문을 실행합니다.
pSetup = "PAGE.SETUP(" & Head & ", " & Foot & ", " & pLeft & ", " & pRight & ", " & Top & ", " & Bot & ", "
pSetup = pSetup & Hdng & ", " & Grid & "," & H_cntr & "," & V_cntr & "," & Orient & ","
pSetup = pSetup & Paper_size & "," & pScale & ","
pSetup = pSetup & Pg_num & "," & Pg_order & "," & bw_cells & "," & Quality & ","
pSetup = pSetup & Head_margin & "," & Foot_margin & "," & Notes & ")"
 
 
Application.ExecuteExcel4Macro pSetup
 
'// ExecuteExcel4Macro에서는 '한 페이지에 행/열 맞추기' 기능이 지원되지 않습니다.
'// 따라서 시트의 PageSetup 속성으로 '페이지 행/열 맞추기 기능을 설정합니다.
With ws.PageSetup
    If HFit = True Then
        .FitToPagesWide = 1
    Else
        .FitToPagesWide = False
    End If
 
    If VFit = True Then
        .FitToPagesTall = 1
    Else
        .FitToPagesTall = False
    End If
End With
 
'// 인쇄설정 업데이트
Application.PrintCommunication = True
 
End Sub

명령문에 사용된 인수

인수 설명 기본값
ws
[WorkSheet]
페이지 레이아웃 설정을 변경할 시트입니다.
LHead
[String]
좌측에 들어갈 머릿말입니다.
RHead
[String]
우측에 들어갈 머릿말입니다. 일자 / 시간
LFoot
[String]
좌측에 들어갈 꼬릿말입니다. 본 페이지의 무단 복제를 금합니다.
RFoot
[String]
우측에 들어갈 꼬릿말입니다. 1 / N 페이지
eMargin
[ePrintMargin]
용지 여백을 결정합니다. 좁은여백
HFit
[Boolean]
한 페이지 모든 행 맞춤 설정 여부 TRUE
VFit
[Boolean]
한 페이지 모든 열 맞춤 설정 여부 FALSE
HCenter
[Boolean]
가운데 정렬 여부 TRUE
VCenter
[Boolean]
중앙 정렬 여부 FALSE
eOrient
[xlPageOrientation]
용지방향 세로방향
eSize
[ePaperSize]
용지크기 A4

세부내용

1. Enum을 통해 새로운 2개의 데이터타입을 생성합니다.
  • ePrintMargin : getPrintMargin 함수에서 인쇄 여백을 설정하기위한 데이터타입입니다.
  • ePaperSize : ExcelExecute4Marco 페이지설정 명령문에서 용지크기 설정을 위한 데이터타입
Public Enum ePrintMargin
    xlNone = 0
    xlNarrow = 1
    xlNormal = 2
    xlWide = 3
End Enum
 
Public Enum ePaperSize
    xlA4 = 9
    xlA3 = 8
    xlLetter = 1
    xlA5 = 11
End Enum
2. GetPrintMargin 명령문을 작성합니다.
  • GetPrintMargin 함수 : 사용자가 용지여백 종류를 선택하면, 여백 종류에 따른 값 수치를 배열로 반환하는 함수입니다.
  • GetPrintMargin 함수는 Page_Setup 함수의 보조함수로 사용됩니다.
  • 각 배열에 들어간 값은 ("왼쪽", "오른쪽", "위쪽", "아래쪽", "머릿말", "꼬릿말") 의 여백입니다.
Function getPrintMargin(eValue As ePrintMargin) As Variant
 
'// 설정된 eNum 값으로 페이지 여백설정을 위한 값을 배열로 나열합니다.
 
Select Case eValue
    Case 0
        getPrintMargin = Array(0.05, 0.05, 0.05, 0.05, 0.1, 0.1)
    Case 1
        getPrintMargin = Array(0.25, 0.25, 0.75, 0.75, 0.3, 0.3)
    Case 2
        getPrintMargin = Array(0.7, 0.7, 0.75, 0.75, 0.3, 0.3)
    Case 3
        getPrintMargin = Array(1, 1, 1, 1, 0.5, 0.5)
End Select
 
End Function
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 속성을 각 명령문의 시작과 끝부분에 넣어 변경합니다.

Application.PrintCommunication = False
 
'//페이지 레이아웃 설정 명령문...
 
Application.PrintCommunication = True

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

'// 여백을 없음으로 설정할 경우 머릿말/꼬릿말을 삭제하여 인쇄영역과 겹치지 않도록 합니다.
If eMargin = xlNone Then
    Head = """"""
    Foot = """"""
End If

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

'// ExecuteExcel4Macro에서는 페이지 가로/세로 페이지 맞춤이 지원 안됩니다.
'// 시트의 PageSetup 속성으로 가로/세로맞춤을 설정합니다.
With ws.PageSetup
    If HFit = True Then
        .FitToPagesWide = 1
    Else
        .FitToPagesWide = False
    End If
 
    If VFit = True Then
        .FitToPagesTall = 1
    Else
        .FitToPagesTall = False
    End If
End With

Page_Setup 명령문을 완성합니다.

Sub Page_Setup(ws As Worksheet, Optional LHead As String = "", Optional RHead As String = "&D / &T", _
                Optional LFoot As String = "본 페이지의 무단복제를 금합니다.", Optional RFoot As String = "&P / &N 페이지", _
                Optional eMargin As ePrintMargin = xlNarrow, _
                Optional HFit As Boolean = True, Optional VFit As Boolean = False, _
                Optional HCenter As Boolean = True, Optional VCenter As Boolean = False, _
                Optional eOrient As XlPageOrientation = xlPortrait, Optional eSize As ePaperSize = xlA4)
 
Dim pSetup As String
Dim varMargin As Variant
Dim lngOrient As Integer
 
'// 인쇄설정 업데이트 중단 (속도증가)
Application.PrintCommunication = False
 
'// 인쇄여백값을 받아옵니다.
varMargin = getPrintMargin(eMargin)
 
'// 인쇄용지 방향을 설정합니다.
If eOrient = xlPortrait Then
    lngOrient = 1
Else
    lngOrient = 2
End If
 
'// ExecuteExcel4Macro 의 Page.Setup 명령문 실행을 위한 문구를 입력합니다.
Head = """&L" & LHead & "&R" & RHead & """"     '// 페이지 머릿말입니다.
Foot = """&L" & LFoot & "&R" & RFoot & """"     '// 페이지 꼬릿말입니다.
pLeft = varMargin(0)                            '// 왼쪽여백
pRight = varMargin(1)                           '// 오른쪽여백
Top = varMargin(2)                              '// 윗여백
Bot = varMargin(3)                              '// 아래여백
Head_margin = varMargin(4)                      '// 머릿말여백
Foot_margin = varMargin(5)                      '// 꼬릿말여백
Hdng = 0                                        '// 행/열반복 출력여부 0 = 반복출력안함 1 = 반복출력
Grid = False                                    '// 눈금선출력여부
Notes = False                                   '// 메모출력여부
H_cntr = HCenter                                '// 가운데정렬
V_cntr = VCenter                                '// 중앙정렬
Orient = lngOrient                              '// 문서방향, 1 = 세로 2 = 가로
Paper_size = eSize                              '// 용지크기
Pg_num = 1                                      '// 페이지 시작번호
Pg_order = 1                                    '// 페이지번호 순서, 1 = 위-아래-우 2 = 좌-우-아래
Quality = ""                                    '// 인쇄품질 (dot-per-inch로 입력) (공백 = 자동)
bw_cells = False                                '// 흑백인쇄여부, TRUE = 글자/테두리 검정,배경 흰색 FALSE = 색깔
pScale = 100                                    '// 축소/확대비율 또는 TRUE (Fit to Page)
 
'// 여백을 없음으로 설정할 경우 머릿말/꼬릿말을 삭제하여 인쇄영역과 겹치지 않도록 합니다.
If eMargin = xlNone Then
    Head = """"""
    Foot = """"""
End If
 
 
'// ExecuteExcel4Macro 명령문을 실행합니다.
pSetup = "PAGE.SETUP(" & Head & ", " & Foot & ", " & pLeft & ", " & pRight & ", " & Top & ", " & Bot & ", "
pSetup = pSetup & Hdng & ", " & Grid & "," & H_cntr & "," & V_cntr & "," & Orient & ","
pSetup = pSetup & Paper_size & "," & pScale & ","
pSetup = pSetup & Pg_num & "," & Pg_order & "," & bw_cells & "," & Quality & ","
pSetup = pSetup & Head_margin & "," & Foot_margin & "," & Notes & ")"
 
 
Application.ExecuteExcel4Macro pSetup
 
'// ExecuteExcel4Macro에서는 한 페이지 모든 행 맞추기 기능이 지원되지 않습니다.
'// 따라서 필요시 시트의 PageSetup 속성으로 한 페이지 모든 행 맞추기를 설정합니다.
With ws.PageSetup
    If HFit = True Then
        .FitToPagesWide = 1
    Else
        .FitToPagesWide = False
    End If
 
    If VFit = True Then
        .FitToPagesTall = 1
    Else
        .FitToPagesTall = False
    End If
End With
 
'// 인쇄설정 업데이트 활성화
Application.PrintCommunication = True
 
End Sub

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 = 원본비율
댓글 20
5 (11개 평가)
Young
Young 2020.04.21 07:22
안녕하세요! 항상 좋은 수업 넘 감사드립니다.  :) 위 수업 관련해서 질문 드립니다 ^^ 추출된 PDF를 바탕화면이 아닌 특정폴더 (예를 들어 C:\ '저장폴더' 폴더) 에 저장하는 경우는 어떻게 코드를 바꿔야 할까요? 다른분의 커뮤니티 질문에 오빠두님이 답변 주신것 보고, If SavePath="" Then SavePath= GetDesktopPath 를 If SavePath="" Then SavePath="C:\Users..\Desktop\저장폴더" 로 변경해서 적용했는데 다른 질문자님처럼 저도 제가 지정한 폴더명이 새로 생성된 파일이름앞에 붙고(예: 저장폴더_오빠두 2019년 8월 급여명세서) 새로 생성된 파일은 기존처럼 바탕화면에 저장됩니다. 혹시 SubModule에서 GetDesktopPath /function을 수정해야 할까요?  혹여 다른 방법이 있다면 조언 부탁드립니다 :)
오빠두엑셀
오빠두엑셀 작성자 2020.04.21 14:20
안녕하세요?
If SavePath="" Then SavePath="C:\Users..\Desktop\저장폴더"
를 아래와 같이 변경해보시겠어요? 폴더경로 뒤에 "\" 를 추가해보시기 바랍니다.^^
If SavePath="" Then SavePath="C:\Users..\Desktop\저장폴더\"
답변이 도움이 되셨길 바랍니다. 감사합니다.
Young
Young 2020.04.21 21:39
간단한 거지만 엄청 중요한거였네요! 앞으로도 잘 써먹을수 있도록 해볼게요. 감사합니다! :)
그리고
그리고 2020.04.30 09:48
vba 어렵고도 재미있네요 좋은 강의 감사합니다.
초보두
초보두 2020.08.03 14:42
안녕하세요! 엑셀관련해서 모르는 것이있으면 오빠두를 찾게 되네요.. 그만큼 유익한 강의가 많다는 것이겠죠!! 한가지 질문이 있는데요... 인쇄 옵션중에 <선택영역 인쇄 - 한페이지에 시트 맞추기> 가 있는데, 한페이지에 시트 맞추기를 하려면 어떻게 해야 하는 것인가요? HFit, VFit 둘 다 True로 했더니 페이지가 이상해지더라구요.... 조언 부탁드립니다
오빠두엑셀
오빠두엑셀 작성자 2020.08.03 22:38
안녕하세요?^^ 한페이지에 시트 맞추기 = 행 또는 열로 페이지 맞춤과 동일합니다. 세로로 긴 문서를 가로용지에 인쇄해야 할 경우 VFit을 True로 설정, 가로로 긴 문서를 세로용지에 인쇄해야 할 경우 HFit 을 True로 설정하시면 됩니다. 본 명령문에서 사용한 ExecuteExcel4Macro 함수는 한페이지에시트맞추기 기능을 따로 지원하지 않습니다.:) 답변이 도움이 되셨길 바랍니다.
Lckrhdrtght
Lckrhdrtght 2020.12.15 15:11
머릿말 꼬릿말 명령문을 지워도 계속 포함되서 출력되는 경우는 어떻하면 좋을까요^^? 페이지 넘버라던지 포함이 되면 안되는데 ..
오빠두엑셀
오빠두엑셀 작성자 2020.12.16 03:38
안녕하세요. 일부 사내 보안 프로그램 등으로 출력물에 머릿말/꼬릿말이 자동으로 설정될 경우 그럴 수 있습니다. 엑셀의 머릿말/꼬릿말 설정에서 머릿말/꼬릿말을 지운 뒤 인쇄를 했을 때, 머릿말/꼬릿말이 자동으로 설정된다면 외부 프로그램으로 인한 문제이므로 VBA로는 해결이 불가능합니다. 답변이 도움이 되셨길 바랍니다.
세무공주
세무공주 2020.12.31 01:50
좋은 강의 감사합니다. 질문^^ 만약 2페이지 문서인데 1페이지 또는 2페이지만 PDF저장 하려면 .. 어떻게 해야 할까요?
오빠두엑셀
오빠두엑셀 작성자 2021.01.03 14:58
안녕하세요. 어떤 명령문을 사용하냐에 따라 다릅니다.^^ PrintOut 함수로 인쇄할 경우 Pages 인수를 변경해보세요.
Application.PrintOut FileName:="", Pages:="2,6-10"
또는 직접 범위를 지정해서 인쇄하는 방법도 있습니다. 아래 영상강의를 참고해보세요. https://www.oppadu.com/%ec%97%91%ec%85%80-pdf-%ec%9e%90%eb%8f%99-%ec%a0%80%ec%9e%a5-%ed%94%84%eb%a1%9c%ea%b7%b8%eb%9e%a8/
dayun
dayun 2021.11.30 09:49
안녕하세요, 강의 잘 보고 있습니다. 다른게 아니라 혹시 엑셀 워크시트 열때, 확대/축소비율을 고정 값으로 사용하는 방법이 있는지 문의드립니다.
오빠두엑셀
오빠두엑셀 작성자 2021.12.05 20:52
안녕하세요. 매크로를 사용하면 가능합니다. WorkBook_Open 이벤트로 확대/축소비율을 지정해주세요. 매크로를 사용하지 않을 경우, 최종 저장하기 전 원하시는 배율을 맞춘 후 저장해주시면 됩니다 ^^
0717
0717 2022.07.28 13:21
안녕하세요~ imagelookup 함수와 PDF전환 메크로를 같이 쓰려고 공부중인데 Notes = True로 설정해봐도 pdf에 이미지가 안나타나서요! 혹시 메크로 사용으로 PDF출력시 메모가 '페이지에표시된대로' 로 설정하려면 어떻게 하면 될까요?
오빠두엑셀
오빠두엑셀 작성자 2022.07.29 15:50
안녕하세요. Notes = True는 메모를 넣는 설정이고 메모를 표시하는 것과는 별개입니다. 메모 표시 설정은 PrintErrors = xlPrintErrorsDisplayed 로 PageSetup 속성을 바꿔서 사용하면 됩니다. 관련 설명은 아래 링크를 확인해보세요. https://docs.microsoft.com/en-us/office/vba/api/excel.pagesetup.printerrors
영
2022.10.20 03:15
머리글의 글씨 크기 설정하는 함수가 궁금합니다. centerhead.font.size = 40 이런 식으로 하면 변수가 지정되지 않았다고 뜹니당...
오빠두엑셀
오빠두엑셀 작성자 2022.10.23 18:57
안녕하세요. 머릿글/꼬릿글 설정은 아래 링크를 참고해보세요.. https://stackoverflow.com/questions/67238826/excel-vba-change-footer-font-and-font-size
ActiveSheet.PageSetup.LeftFooter = "&""Arial""&10" & Range("$G$4").Value
가자가자가자
가자가자가자 2023.08.15 12:05
안녕하세요, 좋은 강의 감사드립니다. PDF 저장폴더 관련하여, 해당 폴더에 저장하고 싶습니다. 예를 들면, 수많은 폴더가 있습니다. 'A업체 폴더' 에서 엑셀 파일을 실행한 의 경우, 제가 별도로 폴더저장 경로를 지정하지 않더라도, 자동으로 'A업체 폴더' 해당폴더의 경로에 지정되었으면 좋겠습니다. 'B업체 폴더' 에서 실행한 엑셀 파일은 'B업체 폴더' 에 저장되었으면 좋겠습니다. VBA상에서 직접 주소를 입력하는것이 아닌, 실행한 엑셀파일의 폴더로 저장이 되었으면 좋겠습니다. 마치 매크로 없이, PDF 를 인쇄를 실행하면, 폴더 지정을 하지 않더라도, 해당폴더에 저장되듯이 자동으로 해당폴더에 지정되면 좋겠습니다. 엑셀VBA에 이런 기능도 있을까요?
오빠두엑셀
오빠두엑셀 작성자 2023.08.21 18:56
네 가능합니다. 선택한 파일의 상위경로를 받아서 저장 경로로 설정하도록 코드를 작성해보세요. https://stackoverflow.com/questions/418622/find-the-directory-part-minus-the-filename-of-a-full-path-in-access-97
강민준🤗
강민준🤗 2024.08.11 12:44
좋은 자료 감사합니다.🙇‍♂️