Excel VBAで複数シートを一括PDF化するコード【コピペOK】

Excelのロゴとロボットの手がPDF化をイメージさせるデザイン

複数シートを一発PDF変換!初心者OKのコピペVBAコード

Excelで請求書や報告書を作成したあと、毎回1シートずつPDFに保存するのって、意外と手間ですよね。
「数が多いと1つずつ保存してられない…」「作業ミスや保存漏れが出やすい…」
そんなお悩みを、VBAで一発解決しましょう!

この記事では、複数のシートを一括でPDF保存するマクロを紹介します。
コピペで使えるので、VBA初心者の方にもオススメです。


できること:複数シートを一括でPDF保存!

以下のような動きが、VBAで簡単に実現できます👇

  • 特定のシート(例:請求書1、請求書2、請求書3)を選んで、
  • まとめて1つのPDFに変換し、
  • 自動的に保存フォルダに出力!

コピペで使えるVBAコード

Sub ExportSheetsToPDF()
    Dim wsArray As Variant
    Dim pdfPath As String

    ' PDF化するシート名を配列で指定(順番も指定可能)
    wsArray = Array("Sheet1", "Sheet2", "Sheet3") '★ここを自分のシート名に変更!

    ' 保存するPDFファイルのパス(このブックと同じフォルダに保存)
    pdfPath = ThisWorkbook.Path & "\複数シートPDF出力.pdf"

    ' シートをPDFとして出力
    Sheets(wsArray).Select
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPath, _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=True

    MsgBox "PDFとして保存が完了しました!", vbInformation
End Sub

💡 ファイル名を自動で日付付きにする方法

固定ファイル名だと、上書きリスクがあります。
以下のようにすると、日付と時間をファイル名に自動付与できます。

pdfPath = ThisWorkbook.Path & "\" & "出力_" & Format(Now, "yyyymmdd_hhmmss") & ".pdf"

保存されるファイル名の例:

  • 出力_20250329_0830.pdf
  • 出力_20250329_1052.pdf

日付ごとに別ファイルとして保存されるので、履歴を残す・最新ファイルの管理にも便利です!

VBAを使えば、毎回のPDF保存作業を一瞬で終わらせることができます。
「作業効率化したい!」と考えている方は、まずこのコードを使ってみてください。

この記事が「ちょっと便利かも」と思ったら、
ぜひ実務で使ってみてくださいね。
ご不明点やカスタマイズのご相談も、お気軽にどうぞ😊

📩 もっとラクに業務を効率化したい方へ

VBAやRPA、クラウド会計のご相談もお気軽にどうぞ!

▶ お問い合わせフォームはこちら

LINEで相談する