シートの内容をPDFファイルに出力

ブック、シートの内容を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