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

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

【コピペOK】複数のシートを一括でPDF化するVBAコード|業務効率がグッとUP!

はじめに:PDF化、毎回面倒じゃないですか?

Excelで請求書や報告書を作成したあと、毎回1シートずつPDFに保存するのって、意外と手間ですよね。
「数が多いと1つずつ保存してられない…」「作業ミスや保存漏れが出やすい…」

そんなお悩みを、VBAで一発解決しましょう!

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

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

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

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

💻 コピペで使えるVBAコード


Sub ExportSheetsAsPDF()

    Dim savePath As String
    Dim sheetNames As Variant
    Dim ws As Worksheet
    Dim i As Integer

    ' 保存先のパスを指定(ここではデスクトップ)
    savePath = Environ("USERPROFILE") & "\Desktop\複数シートのPDF出力.pdf"

    ' 出力したいシート名を配列で指定
    sheetNames = Array("請求書1", "請求書2", "請求書3")

    ' 一時的にコピーするワークブックを作成
    Workbooks.Add
    For i = LBound(sheetNames) To UBound(sheetNames)
        ThisWorkbook.Sheets(sheetNames(i)).Copy _
        After:=Worksheets(Worksheets.Count)
    Next i

    ' 最初の空白シートを削除
    Application.DisplayAlerts = False
    Worksheets(1).Delete
    Application.DisplayAlerts = True

    ' PDFとして保存
    ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=savePath, Quality:=xlQualityStandard

    ' 一時ブックを閉じる
    ActiveWorkbook.Close SaveChanges:=False

    MsgBox "PDFの保存が完了しました!" & vbCrLf & savePath, vbInformation

End Sub

  

コードの解説ポイント

  • ● sheetNames = Array(…)
    → PDFにしたいシート名をここで指定します。
  • ● ThisWorkbook.Sheets(sheetNames(i)).Copy
    → 一時的に新しいブックにシートをコピーして、PDF出力しています。
  • ● ExportAsFixedFormat
    → ExcelをPDFに変換する標準メソッド。
  • ● savePath
    → 出力場所とファイル名を自由に設定可能。

応用例・カスタマイズ

✅ ファイル名に日付を入れる:

savePath = Environ("USERPROFILE") & "\Desktop\請求書_" & Format(Date, "yyyymmdd") & ".pdf"
  

✅ 特定のフォルダに保存したいとき:

savePath = "C:\Users\ユーザー名\Documents\PDF出力\請求書.pdf"
  

✅ 一括印刷に変更したい場合:

→ 下記を入れ替えるだけ!

.ExportAsFixedFormat
  

.PrintOut
  

📌 まとめ:VBAでPDF出力を自動化しよう!

複数のシートを1つのPDFにまとめて保存できれば、
日々の請求書作成や報告書作成がかなり効率化できます。

特に中小企業や個人事業主の方で、手作業でPDFを保存しているなら、
一度設定すればずっとラクになるマクロ です!

✨ この記事は役に立ちましたか? ✨
よければ簡単なフィードバックをお願いします!

フィードバックを送る

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

📩 もっとラクに業務を効率化したい方へ
VBAやRPA、クラウド会計のご相談もお気軽にどうぞ!

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