
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なら数秒で自動化できます。