EXCEL - VBA

인쇄 내용을 PDF, XPS 파일로 저장하기

별동산 2023. 8. 24. 08:37
반응형

PrintOut 메서드를 이용해서
ActiveSheet.PrintOut to:=1, ActivePrinter:="Microsoft Print to PDF"
라고 매크로를 작성할 수도 있지만
 
ExportAsFixedFormat 메서드를 이용해 PDF 파일 포맷으로 저장할 수 있습니다.
 

1. 구문

expression.ExportAsFixedFormat (Type, FileName, Quality, IncludeDocProperties, IgnorePrintAreas, From, To, OpenAfterPublish, FixedFormatExtClassPtr)
 
expression은 Worksheet 또는 Workbook가 될 수 있습니다.
 
인수는 아래와 같습니다.

인수 명필수/선택데이터 형식설명
Type필수xlFixedFormatTypexlTypePDF 또는 xlTypeXPS
FileName선택Variant저장할 파일명으로 full path를 지정할 수도 있고, 현재 폴더에 저장한다면 파일명만 지정
Quality선택VariantxlQualityStandard 또는 xlQualityMinimum.
IncludeDocProperties선택Variant문서의 속성을 포함하려면 True, 아니면 False
IgnorePrintAreas선택Variant설정된 인쇄 영역을 무시하려면 True, 설정된 인쇄 영역을 사용하려면 ,False 
From선택Variant인쇄를 시작할 페이지 수
To선택Variant인쇄할 마지막 페이지 수
OpenAfterPublish선택VariantTrue면 인쇄를 완료한 후 뷰어에 파일을 표시, False면 표시하지 않음
FixedFormatExtClassPtr선택VariantFixedFormatExt class에 대한 포인터

 

2. PDF 파일로 저장하기

ExportAsPDF.xlsm
0.10MB

 
 
 
표준 품질로 land.pdf 파일에 저장하고, 저장한 후 뷰어에서 pdf파일을 보여주는 코드입니다.

Sub export_to_pdf()
'    ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:="land.pdf", Quality:=xlQualityStandard, OpenAfterPublish:=True
    ActiveWorkbook.ExportAsFixedFormat xlTypePDF, "land.pdf", xlQualityStandard, , , , , True
End Sub

 
위와 같이 :=을 사용해서 type과 값을 지정할 수 있고,
 
인수의 위치에 맞춰서 인수의 값을 입력한다고 하면 순서대로 값을 아래와 같이 입력하면 됩니다.
ActiveWorkbook.ExportAsFixedFormat xlTypePDF, "land.pdf", xlQualityStandard, , , , , True
 
네 번째부터 일곱 번째까지 인수를 생략하고, 여덟 번째 인수인 OpenAfterPublish에 대한 값을 True로 지정했습니다.
 
매크로 실행 후 land.pdf파일이 Adobe Acrobat Reader에서 열린 모습니다.

 

3. XPS 파일 뷰어 설치

 

가. XPS 파일이란?

XPS(XML Paper Specification) 파일은 Microsoft에서 Adobe사의 PDF 파일 포맷에 대응하기 위해 만든 파일 형식이라고 합니다.
 

나. XPS 뷰어 설치하기

XPS 뷰어는 기본적으로 설치되어 있지 않으므로
윈도우 버튼> 설정 > 앱 아래 '선택적 기능' 클릭한 다음

 
나오는 화면에서 '기능 보기'버튼을 누르면 선택적 기능 추가 화면이 나오는데, 여기서 xps라고 입력한 후 XPS 뷰어를 선택하고, 다음 버튼을 누른 후 설치버튼을 누릅니다.

 
그러면 XPS 뷰어가 설치가 되는데, 사이즈에 비해 오래 걸립니다.
 

4. XPS 파일 작성 매크로

 
아래는 "land.xps란 이름으로 XPS 파일을 만들고, 인쇄 후 뷰어에서 열라"는 매크로입니다.

Sub export_to_xps()
'    ActiveWorkbook.ExportAsFixedFormat Type:=xlTypeXPS, Filename:="land.xps", Quality:=xlQualityStandard, OpenAfterPublish:=True
    ActiveSheet.ExportAsFixedFormat xlTypeXPS, "land.xps", xlQualityStandard, , , , , True
End Sub

 
위 매크로를 실행하면 아래와 같이 land.xps 파일이 XPS 뷰어에서 열립니다.

반응형