本記事には広告(PR)が含まれます。
くわしくは プライバシーポリシー をご確認ください。
エクセルで毎回同じシートを印刷する作業、意外と手間に感じたことはありませんか?
そんなときに便利なのが「マクロ(VBA)」を使った印刷の自動化です。
マクロを使えば、ボタンをクリックするだけで印刷できる仕組みを作ることができます。さらに、複数のシートをまとめて印刷したり、プリンターの設定画面を開いたりと、印刷作業をぐっと効率化できます。
この記事では、エクセル初心者の方にもわかりやすく「マクロで印刷する方法」を解説します。まずは基本的な印刷マクロの書き方から始めて、応用的な設定方法まで丁寧に紹介していきますので、ぜひ最後までご覧ください。
■ 基本コード
■ ポイント解説
■ 実行方法
■ 活用例
マクロで印刷を便利にする応用設定
■ 基本的な連続印刷マクロ
■ ポイント解説
■ 特定のシートだけを連続印刷したい場合
例えば、「Sheet1」「Sheet3」「Sheet5」だけを印刷したい場合は、以下のように記述します。
■ 活用例
-
各営業所ごとの報告書をまとめて印刷
-
毎月の請求書フォーマットを月別に印刷
-
ラベルやチェックリストを一括出力する場面など
■ 注意点
-
空白のシートや印刷対象外のシートが含まれていないか、事前に確認しておきましょう。
-
プリンターの用紙切れなどで途中で止まると、手動再開が必要になる場合があります。
印刷設定画面を呼び出す
Excel VBAでは、ユーザーがプリンターの選択や印刷設定を自分で行えるように、印刷ダイアログを表示させることもできます。
プリンター名をマクロで固定してしまうと、PCやネットワーク環境が変わったときに不具合が出ることもあるため、あえてユーザー操作を促す方法は安全かつ実用的です。
■ 印刷設定画面を表示するマクロ
Sub 印刷設定画面を開く()
Application.Dialogs(xlDialogPrint).Show
End Sub
↓マクロを実行すると以下のような印刷ダイアログが表示されます。

■ この方法が役立つシーン
-
複数のプリンターを使い分けたいとき(例:片面/両面、手差し/自動など)
-
PCごとにプリンター環境が異なるとき
-
紙の種類やトレイを選んで印刷したいとき
■ 注意点
-
完全自動印刷ではないため、手動での操作が必要です。
-
複数回の印刷をループで実行する用途には不向きです。
このように、あえて設定画面を開かせることで、誤印刷を防いだり、環境に依存しないマクロを作成できます。
特定のページ範囲・部数を指定する
印刷マクロでは、ただ印刷するだけでなく、ページ範囲や部数などを細かく指定することも可能です。
部署用に2部、管理用に1部など、状況に応じた出力コントロールができます。
■ ページ範囲・部数を指定して印刷するマクロ
Sub ページ範囲と部数を指定して印刷()
'選択中のシート1ページ目~2ページ目を2枚ずつ印刷
ActiveSheet.PrintOut From:=1, To:=2, Copies:=2, Collate:=True
End Sub
■ 引数の意味
| 引数 | 内容 |
|---|---|
From |
印刷開始ページ(1ページ目など) |
To |
印刷終了ページ |
Copies |
印刷部数(何部印刷するか) |
Collate |
複数部印刷時にページ順を維持するか(True=維持) |
■ 活用例
-
ページが多い資料の一部だけを印刷したいとき(例:3~5ページだけ)
-
複数人に配布するため、同じ内容を2~3部印刷したいとき
-
出力を並べ替えずにページ順で整理して渡したいとき(Collate=True)
■ 応用:他の設定と組み合わせることも可能
Sub プレビュー任意_確認して印刷()
' 1) プレビューを出すか確認(任意)
If MsgBox("プレビューを表示しますか?", vbYesNo + vbQuestion, "印刷前の確認") = vbYes Then
ActiveWindow.SelectedSheets.PrintPreview
End If
' 2) 最終確認(既定は「いいえ」で誤印刷防止)
If MsgBox("この内容で印刷しますか?", vbYesNo + vbQuestion + vbDefaultButton2, "印刷の確認") = vbYes Then
' ページ範囲・部数は必要に応じて指定(例は1~2ページを2部)
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=2, Copies:=2, Collate:=True
Else
MsgBox "印刷をキャンセルしました。", vbInformation
End If
End Sub
このように、プレビュー確認と組み合わせることで、安心して印刷処理が行えます。
【マクロの流れ】
-
「プレビューを表示しますか?」という確認メッセージが出ます。
- YES → プレビュー画面が表示されます
- NO → そのまま次の工程へ進みます -
「この内容で印刷しますか?」という最終確認メッセージが出ます。
- YES → 印刷を実行します
- NO → 印刷をキャンセルします
実行すると、このような確認メッセージが表示されます。

■ 注意点
-
対象シートの印刷範囲(ページ設定)が適切でないと、意図したページが印刷されないこともあります。
-
ページ区切りや余白は、事前に調整しておくとスムーズです。
まとめ
エクセルのマクロを使えば、印刷作業をぐっと効率化できます。
基本的な PrintOut を使ったシンプルなコードから始めて、複数シートの一括印刷や連続印刷、さらにはページ範囲や部数の指定まで、用途に応じて柔軟にカスタマイズできます。
また、プリンター環境が変わりやすい場合は、印刷ダイアログを表示させる方法を取り入れると、トラブルを減らせて安心です。
印刷エラーへの対処法も押さえておけば、実務でも安心して活用できます。
まずは基本の「ワンクリック印刷」から試してみて、少しずつ応用設定を組み合わせていくのがおすすめです。
マクロを活用して、毎日の印刷作業をもっとラクにしてみましょう。
【関連記事】
- 初心者でも簡単!Excelマクロボタンの設定と実践的な活用法
- Excelのマクロが使えない?セキュリティリスクの警告を解除する方法をわかりやすく解説!
- Excelマクロで数式を扱うときの注意点|セル参照の崩れを防ぐVBAの書き方とは?
※外部リンク※
- Worksheet.PrintOut メソッド (Excel) |Microsoft Learn
- Worksheet.PrintPreview メソッド (Excel) |Microsoft Learn
※おすすめの動画講座 (PR)※
今回紹介した印刷マクロを理解できた方で、
「ページ設定・余白・ヘッダー/フッター・プレビュー表示」まで
まとめて学びたい方には、以下の講座も参考になります。
- 【5日で覚える!ExcelマクロVBA超入門】(Udemy)
※本リンクはアフィリエイトリンク(PR)を含みます。
※参考書籍 (PR)※
※本ボックスにはアフィリエイトリンク(PR)が含まれます。
くわしくは プライバシーポリシー へ。
