【コピペ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を保存しているなら、
一度設定すればずっとラクになるマクロ です!
✨ この記事は役に立ちましたか? ✨
よければ簡単なフィードバックをお願いします!
この記事が「ちょっと便利かも」と思ったら、
ぜひ実務で使ってみてくださいね。
ご不明点やカスタマイズのご相談も、お気軽にどうぞ 😊