VBAを利用して、エクセルのワークシートをPDFで出力する方法を紹介します。
サンプルコード
特定のワークシートをPDFとして出力する
ワークシート名”Sheet1″をPDFとして出力するサンプルコードです。出力時の名前は、ワークシート名.pdfとなっています。
コード内のwsname=”Sheet1”の部分で”Sheet1″を別の名前に変えると出力するワークシートを変更することができます。
サンプルコード
Sub Output_PDF()
Dim cdir As String
Dim cfi As String
Dim wsname As String
Dim pdfname As String
cdir = ThisWorkbook.Path
cfi = ThisWorkbook.Name
wsname = "Sheet1"
pdfname = cdir & "\" & wsname & ".pdf"
Workbooks(cfi).Worksheets(wsname).ExportAsFixedFormat Type:=xlTypePDF,Filename:=pdfname _
,Quality:=xlQualityStandard,IncludeDocProperties:=True, IgnorePrintAreas:=False _
,OpenAfterPublish:=False
End Sub
すべてのワークシートをPDFとして出力する
こんどは、ワークブック内すべてのワークシートを出力するサンプルコードです。出力時のファイル名は、ワークシート名で出力されます。
サンプルコード
Sub Output_PDF()
Dim cdir As String
Dim cfi As String
Dim wsname As String
Dim ws As Worksheet
Dim pdfname As String
cdir = ThisWorkbook.Path
cfi = ThisWorkbook.Name
For Each ws In Workbooks(cfi).Worksheets
wsname = ws.Name
pdfname = cdir & "\" & wsname & ".pdf"
Workbooks(cfi).Worksheets(wsname).ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=pdfname , Quality:=xlQualityStandard, _
IncludeDocProperties:=True,IgnorePrintAreas:=False,OpenAfterPublish:=False
Next
End Sub
簡単な説明
ワークシートをPDFで出力するためには、ExportAsFixedFormat メソッドを使用しています。
ExportAsFixedFormat(Type、 FileName、 Quality、 includedocproperties、 ignoreprintareas、 From、 To、 openafterpublish、 FixedFormatExtClassPtr)
※青字は省略可
Typeに”xlTypePDF“を指定することでPDFでの出力となります。
FileNameには、出力時のファイル名を設定します。サンプルコードでは絶対パスでファイル名を指定することでファイルの保存先も指定しています。
一つのシート内で、印刷範囲が複数に分かれている場合はignoreprintareas、 From、 Toで印刷する範囲を管理します。例えば、印刷範囲のなかで、3ページから6ページまでを出力したい場合は、ignoreprintareas:=false , From:=3 , To:=6となります。
コメント