複数シートを一発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保存作業を一瞬で終わらせることができます。
「作業効率化したい!」と考えている方は、まずこのコードを使ってみてください。
この記事が「ちょっと便利かも」と思ったら、
ぜひ実務で使ってみてくださいね。
ご不明点やカスタマイズのご相談も、お気軽にどうぞ😊