Django Girls and Boys 備忘録

Python、Selenium、Django、java、iPhoneアプリ、Excelマクロなどで気付いたこと、覚えておきたいことなどを載せていきます。

【Excel VBA】シートをまとめて印刷・PDF化する方法(実務で超便利)

Excelでは、

  • 全シートをまとめて印刷したい
  • 会議資料をPDF化したい
  • レポートを一括出力したい

という場面がよくあります。

そんな時はVBAで一発です。


① すべてのシートをまとめて印刷する

最も簡単な方法はこちらです。

 
Sub PrintAllSheets()
    Worksheets.PrintOut
End Sub

 

これで全シートがまとめて印刷されます。


特定シートだけ印刷したい場合

 
Sub PrintVisibleSheets()

    Dim ws As Worksheet

    For Each ws In Worksheets
        If ws.Visible = xlSheetVisible Then
            ws.PrintOut
        End If
    Next ws

End Sub

 

これは非表示シートを除外できます。


② ブック全体をPDF化する

こちらは非常によく使います。

 
Sub ExportWorkbookToPDF()

    Dim folderPath As String

    folderPath = "C:\Test\"
    ActiveWorkbook.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=folderPath & "まとめ資料.pdf"

End Sub

 


実行結果

例えば

 
C:\Test\まとめ資料.pdf

 

というPDFが作成されます。


③ シートごとにPDF化する

1シートずつPDFにしたい場合はこちら。

 
Sub ExportEachSheetToPDF()
    Dim ws As Worksheet
    Dim folderPath As String
    folderPath = "C:\Test\"
    For Each ws In Worksheets
        ws.ExportAsFixedFormat _
            Type:=xlTypePDF, _
            Filename:=folderPath & ws.Name & ".pdf"
    Next ws
End Sub

 


実行結果

シートが

  • 売上
  • 在庫
  • 集計

なら、

  • 売上.pdf
  • 在庫.pdf
  • 集計.pdf

が作成されます。


よくある用途

月次レポート

毎月の報告資料をPDF化


請求書

顧客ごとにPDF出力


会議資料

複数シートをまとめて1つのPDFに


注意点

保存先フォルダを作っておく

 
folderPath = "C:\Test\"

 

フォルダがないとエラーになります。


同名PDFは上書きされる

既に同じ名前がある場合は注意しましょう。


まとめ

印刷なら

 
Worksheets.PrintOut

 

PDF化なら

 
ExportAsFixedFormat

 

これを覚えておけばOKです。


一言まとめ

シートの分割保存も、印刷も、PDF化もVBAなら数秒で自動化できます。