Excelで特定の範囲だけを1ページに収めて印刷したい場合、「ページ指定」や「印刷範囲」の設定を毎回手動で行うのは手間がかかります。本記事では、VBAを活用して印刷範囲やページ指定を自動化し、常に1ページ目のみ印刷する方法を解説します。
「ページ指定」はデフォルト設定できるのか?
結論として、Excelの印刷ダイアログで「ページ指定(開始・終了)」をデフォルトで固定することはできません。これはExcelの仕様であり、ユーザー操作として扱われるためです。
そのため、毎回手動で「開始:1 終了:1」を選択する必要がありますが、VBAを使うことでこの操作を省略できます。
印刷範囲を固定する方法(おすすめ)
最もシンプルで確実なのは、印刷範囲をあらかじめ設定してしまう方法です。これにより、余計な行や列が印刷されるのを防げます。
例として、U列までかつ必要な行だけを印刷したい場合、以下のように設定します。
ActiveSheet.PageSetup.PrintArea = “A1:U50”
この設定をしておけば、「ページ指定」を触らなくても常に指定範囲のみ印刷されます。
VBAで1ページ目のみ印刷する方法
印刷時に強制的に1ページ目だけ出力したい場合は、PrintOutメソッドの引数を使います。
ActiveSheet.PrintOut From:=1, To:=1
このコードをボタンやマクロに割り当てることで、「ページ指定」を意識せずに常に1ページ目だけ印刷できます。
実例として、ボタンを押すだけで印刷する仕組みにすると、操作ミスを防げます。
列の非表示と組み合わせる方法
質問にあるように、不要な列を非表示にする方法も有効です。例えば以下のコードで印刷前後に列を制御できます。
Columns(“V:AI”).EntireColumn.Hidden = True
ActiveSheet.PrintOut From:=1, To:=1
Columns(“V:AI”).EntireColumn.Hidden = False
これにより、見た目はそのままで印刷時だけ不要部分を除外できます。
より安全な運用方法
印刷ミスを防ぐためには、ユーザーが直接印刷ダイアログを開かない運用が重要です。専用の「印刷ボタン」を用意し、その中にVBA処理をまとめることで、常に同じ条件で印刷できます。
また、印刷プレビューを表示する処理を入れることで、事前確認も可能です。
まとめ:手動操作を減らすにはVBAが最適
Excelでは「ページ指定」をデフォルトで固定することはできませんが、VBAを活用することで同じ動作を自動化できます。特にPrintOutのFrom・To指定や印刷範囲の設定を組み合わせることで、常に1ページのみの印刷が可能になります。
手動操作によるミスを防ぐためにも、専用マクロやボタンによる運用がおすすめです。


コメント