【VBA】ワークシートをPDFで出力する

Excel・VBA

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となります。

コメント

タイトルとURLをコピーしました