VBA를 사용하여 Excel에서 선택한 범위 (영수증)를 Excel의 PDF로 저장하려면 아래 구문을 사용하십시오.

일반 코드

Sub SaveRangeAsPDF()

Range.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _

"C:\Users\file_name", Quality:=xlQualityStandard, _

IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True

End Sub

위의 코드는 고정 범위를 PDF 문서로 저장하는 일반 코드입니다. Excel을 PDF로 내보내는 동안 기록 매크로를 사용하면 유사한 코드가 나타납니다.

범위 : * 고정 범위, 동적 범위 또는 선택이 될 수 있습니다. 정의해야합니다.

파일 이름 : pdf의 정규화 된 이름입니다. 문자열로 정의하십시오.

나머지 변수는 그대로 둘 수 있습니다. 나는 예를 들어 설명했다.

예 : VBA를 사용하여 Excel 영수증을 PDF로 인쇄하기 정기적으로 Excel에서 영수증을 인쇄하고 보내야한다고 가정 해 보겠습니다. 이 경우 자동화를 원합니다. 당신은 반복해서 pdf로 내보내기 엑셀을하고 싶지 않을 것입니다. 버튼 만 사용하면 도움이되지 않나요?

여기에서이 영수증 형식을 디자인했습니다. “PDF 생성”버튼을 사용하여 pdf로 인쇄 / 저장 / 내보내기를 원합니다.

imageThis receipt covers the range “A2:L21”. I have already set the print area.

image

이 엑셀 범위를 PDF로 저장하려면 위에서 언급 한 엑셀 시트를 pdf로 내보내는 일반 VBA 코드를 사용합니다. 요구 사항에 따라 코드를 조정할 것입니다.

Sub PrintSelectionToPDF()

Dim invoiceRng As Range

Dim pdfile As String

'Setting range to be printed

Set invoiceRng = Range("A1:L21")

'setting file name with a time stamp.

pdfile = "invoice" & "_" & Format(Now(), "yyyymmdd_hhmmss") & ".pdf"

'setting the fulli qualified name. The resultent pdf will be saved where the main file exists.

pdfile = ThisWorkbook.Path & strfile

invoiceRng.ExportAsFixedFormat Type:=xlTypePDF, _

Filename:= pdfile, _

Quality:= xlQualityStandard, _

IncludeDocProperties:=True, _

IgnorePrintAreas:=False, _

OpenAfterPublish:=False

End Sub

코드 사용 :

VBA 편집기를 열어 영수증 파일에서 위 코드를 복사합니다 (Alt + F11 사용). 인쇄 할 코드에서 범위와 파일 경로 (원하는 경우)를 조정합니다. 아래 작업 파일을 다운로드 할 수 있습니다.

`link : /wp-content-uploads-2019-12-Save-Excel-Range-as-PDF-using-VBA.xls [

image 48Save Excel Range as PDF using VBA]

설명 :

Dim invoiceRng As Range

Dim pdfile As String

코드는 간단합니다. 먼저 두 개의 변수를 만들었습니다. pdf로 저장하려는 범위 / 시트에 대한 “InvoiceRng as Range”. 결과 PDF의 정규화 된 파일 이름에 대한 strFile.

Set invoiceRng = Range("A1:L21")

인쇄 범위가 고정되어 있으므로 송장 범위를 Range ( “A1 : L21”)로 설정합니다.

pdfile = "invoice" & "_" & Format(Now(), "yyyymmdd_hhmmss") & ".pdf"

pdfile = ThisWorkbook.Path & strfile

위의 두 줄에서 먼저 타임 스탬프로 파일 이름을 지정한 다음 기본 파일의 경로에 추가합니다. 결과적으로 pdfile에는 결과 pdf 파일의 완전한 이름이 포함됩니다.

invoiceRng.ExportAsFixedFormat _

Type:=xlTypePDF, _

Filename:= pdfile, _

Quality:= xlQualityStandard, _

IncludeDocProperties:=True, _

IgnorePrintAreas:=True, _

OpenAfterPublish:=False

마지막으로 Range 클래스의 ExpoortAsFixedFormat 메서드를 사용하여 정의 된 Excel 범위를 PDF로 인쇄합니다. 유형을 xlTypePDF로 정의합니다. 또 다른 선택은 선택한 범위를 XPS 파일로 저장하는 xlTypeXPS입니다.

파일 이름을 pdf 파일의 정규화 된 이름 문자열을 포함하는 pdfile로 설정합니다. 여기에 하드 코딩 된 텍스트를 작성하거나 필요에 따라 사용자 정의 할 수 있습니다.

다음으로 pdfile의 품질을 xlQualityStandard로 설정합니다. xlQualityMinimum으로 다른 선택이 있습니다.

다음으로 IncludeDocProperties를 True로 설정합니다. 이는 결과 PDF가 문서의 속성을 갖게됨을 의미합니다.

그런 다음 IgnorePrintAreas를 True로 설정합니다. 이는 이미 설정된 인쇄 영역을 무시 함을 의미합니다.

마지막으로 OpenAfterPublish를 False로 설정합니다. 생성 한 파일이 자동으로 열리지 않음을 의미합니다. 루프를 사용하여 수백 개의 파일을 만들고 파일을 열지 않기 때문에 false로 설정했습니다. 엑셀을 사용하여 생성 한 후 파일을 열려면 True로 설정하십시오.

선택한 범위를 pdf로 인쇄하는 용도

한 가지 기본 용도는 버튼 하나만 클릭하여 선택한 범위를 인쇄하는 것입니다. 그러나 가장 좋은 방법은 서로 다른 클라이언트에 대해 여러 영수증을 만들어야하는 루프에서 사용하는 것입니다. 데이터를 채우기위한 하위를 만든 다음이 코드를 사용하여 선택한 범위를 루프로 인쇄합니다.

네,이 방법으로 선택한 범위를 pdf로 저장할 수 있습니다. 도움이 되었기를 바랍니다. VBA를 사용하여 Excel에서 인쇄하는 것과 관련하여 여전히 의문이나 질문이있는 경우 아래 의견 섹션에서 질문하십시오.

관련 기사 :

link : / printing-in-vba-print-all-workbooks-in-a-folder-using-vba-in-microsoft-excel [Microsoft Excel에서 VBA를 사용하여 폴더의 모든 통합 문서 인쇄]| 이 VBA 코드를 사용하여 각 Excel 통합 문서를 인쇄하고 폴더에 저장하십시오.

인기 기사 :

link : / general-topics-in-vba-split-excel-sheet-into-multiple-files-based-on-column-using-vba [VBA를 사용하여 열을 기반으로 Excel 시트를 여러 파일로 분할]| 이 VBA 코드 분할 엑셀 시트는 지정된 열의 고유 값을 기반으로합니다.

작업 파일을 다운로드하십시오.

link : / general-topics-in-vba-turn-off-warning-messages-using-vba-in-microsoft-excel [Microsoft Excel 2016에서 VBA를 사용하여 경고 메시지 끄기]| 실행중인 VBA 코드를 중단하는 경고 메시지를 끄려면 Application 클래스를 사용합니다.

link : / files-workbook-and-worksheets-in-vba-add-and-save-new-workbook-using-vba-in-microsoft-excel [Microsoft Excel 2016에서 VBA를 사용하여 새 통합 문서 추가 및 저장]| VBA를 사용하여 통합 문서를 추가하고 저장하려면 Workbooks 클래스를 사용합니다. Workbooks.Add는 새 통합 문서를 쉽게 추가하지만 …​