1. 導入:なぜこのテクニックが必要なのか
実務において、一つのシート内に「請求書」や「売上報告書」などの表を複数並べて作成しているケースはよくあります。通常、そのまま印刷するとそれらすべての表が1ページに収まってしまったり、意図しない場所で改ページが入ったりして困ったことはありませんか?
「改ページ」機能は行や列単位でしか区切れないため、セル範囲単位での制御には向きません。今回は、Excelの印刷範囲設定を応用して、離れた場所にある複数の表を、それぞれ別々のページとして強制的に印刷するプロ技を解説します。
2. 基礎知識:印刷範囲設定の仕組み
Excelの「印刷範囲」とは、シート全体ではなく「ここだけを印刷する」と指定する機能です。通常は単一の範囲を指定しますが、実は[Ctrl]キーを使って複数の範囲を選択した状態で設定すると、それぞれの範囲が個別のページとして認識されるという特性があります。これを利用することで、改ページを細かく調整する手間を省き、ワンクリックで必要な範囲だけをきれいに分断して出力することが可能になります。
3. 実装・解決策
手順は非常にシンプルです。
1. 印刷したい最初の範囲をドラッグして選択します。
2. [Ctrl]キーを押しながら、次の範囲、その次の範囲……と順次選択していきます。
3. [ページレイアウト]タブの[印刷範囲]をクリックし、[印刷範囲の設定]を選択します。
これだけで準備完了です。印刷プレビューを確認すると、選択した範囲がそれぞれ別のページに分かれていることがわかります。
4. サンプルプログラム
VBAを使ってこの操作を自動化すれば、大量の表を定型的に印刷する際に非常に役立ちます。以下に、指定した複数の範囲をプログラムから印刷範囲として設定するコードを紹介します。
Sub SetPrintAreasForMultipleRanges()
' 印刷したい範囲をUnionメソッドで結合して指定します
Dim ws As Worksheet
Dim rngToPrint As Range
Set ws = ActiveSheet
' ここで印刷したい範囲を個別に指定
' Unionを使うことで、離れた複数の範囲を一つのRangeオブジェクトとして扱えます
Set rngToPrint = Union(ws.Range("A1:C10"), ws.Range("E1:G10"), ws.Range("I1:K10"))
' 印刷範囲を設定
ws.PageSetup.PrintArea = rngToPrint.Address
' 印刷プレビューで確認(実際に印刷する場合は .PrintOut に変更してください)
ws.PrintPreview
MsgBox "指定した範囲を別々のページとして印刷設定しました。"
End Sub
5. 応用・注意点
・改ページ位置の注意:この方法を使うと、各範囲の間に自動的に改ページが挿入されます。範囲内のデータ量が多い場合、その範囲自体が2ページ以上にわたることもあります。その際は、各範囲のサイズをあらかじめA4サイズ相当に調整しておくことが重要です。
・印刷プレビューの活用:印刷を実行する前に、必ず「改ページプレビュー」を確認してください。意図しない場所に空白ページが混ざっていないか、印刷範囲が正しく選択されているかを視覚的に確認する癖をつけましょう。
・現場での運用:このテクニックは「一度設定すると印刷範囲が固定される」ため、作業が終わったら「印刷範囲のクリア」を行わないと、次回の印刷時に古い設定が残ってしまいます。必要に応じて、印刷後に印刷範囲をクリアするマクロを組んでおくと親切です。
