ブック、シートの内容をPDFファイルに出力する
VBAでブック、シートの内容をPDF出力するにはExportAsFixedFormatメソッドを利用して出力することができます。
サンプルコードでは下記の3パターンの記載しています。
・ブック内のすべてのシートを1つのPDFファイルに出力
・特定のシートだけをPDFファイルに出力
・ブック内のシート単位にPDFファイルを出力
すべてのシートを1つのPDFファイルに出力するにはWorkbookオブジェクトに対してExportAsFixedFormatメソッドを利用しており、シート単位での出力にはWorksheetオブジェクトに対してExportAsFixedFormatメソッドを利用しています。
●ブック内のすべてのシートを1つのPDFファイルに出力
'******************************************************************
' ブック内のすべてのシートを1つのPDFファイルに出力
'******************************************************************
Sub exportPDF_AllSheet()
'出力先のパスとファイル名を指定
Dim sPdfPath As String
sPdfPath = ThisWorkbook.Path & "\pdf_output.pdf"
'全シートをPDF出力
ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, FileName:=sPdfPath
MsgBox "出力されました。"
End Sub●特定のシートだけをPDFファイルに出力
'******************************************************************
' 特定のシートだけをPDFファイルに出力
'******************************************************************
Sub exportPDF_Sheet()
'出力先のパスを指定
Dim sOutputPath As String
sOutputPath = "C:\VBA\pdf\"
'出力するシート名を指定
Dim sShtName As String
sShtName = "Sheet1"
'出力ファイル名の指定
Dim sPdfPath As String
sPdfPath = sOutputPath & sShtName & ".pdf"
'PDF出力
Sheets(sShtName).ExportAsFixedFormat Type:=xlTypePDF, FileName:=sPdfPath
MsgBox "出力されました。"
End Sub●ブック内のシート単位にPDFファイルを出力
'******************************************************************
' ブック内のシート単位にPDFファイルを出力
'******************************************************************
Sub exportPDF_EachSheet()
'出力先のパスを指定
Dim sOutputPath As String
sOutputPath = "C:\VBA\pdf\"
Dim wsObj As Worksheet
'シートごとに出力
For Each wsObj In Worksheets
'出力ファイル名の指定(シート名=ファイル名)
Dim sPdfPath As String
sPdfPath = sOutputPath & wsObj.Name & ".pdf"
'PDF出力
wsObj.ExportAsFixedFormat Type:=xlTypePDF, FileName:=sPdfPath
Next
MsgBox "出力されました。"
End Sub

