📋
ClearPrintArea
シート管理印刷範囲をクリアする
Excelの印刷範囲設定を一括でクリアするVBAマクロです。PageSetup.PrintAreaプロパティを空文字に設定することで、特定範囲に限定されていた印刷エリアを解除し、シート全体が印刷対象に戻ります。複数シートに設定された印刷範囲をループ処理で一気にリセットできるため、レイアウト変更後の手作業による解除作業が不要になります。内部ではPageSetup.PrintAreaに空文字を代入するだけの単純な処理ですが、SetPrintAreaとは逆方向の操作にあたり、印刷範囲を再設定する前の初期化ステップとして組み合わせて使われます。レイアウト変更が多い運用フェーズでは、まず全シートをクリアしてから新しい範囲を設定し直す流れが安全です。ダイアログ操作を何度も繰り返す必要がなく、複数シートへの一括処理も一瞬で完了します。

📖 使い方
- VBAエディタを開く(Alt + F11)
- モジュールを挿入(挿入 > モジュール)
- 下記VBAコードをコピー&ペースト
- ブック上で実行(Alt + F8 でマクロ選択)
💡 実行例: 実行するとアクティブシートの印刷範囲がクリアされる
🎯 活用シーン
- ✓印刷レイアウト見直し時の複数シートの印刷範囲リセット
- ✓テンプレートファイルから印刷設定を除去してクリーンな状態で配布
- ✓月末処理後のレポートシートの印刷範囲を次月用にリセット
- ✓四半期ごとにレイアウトが変わる報告書テンプレートで、印刷範囲を毎回リセットしてから再設定したいとき
- ✓他社から受け取ったファイルに設定された不要な印刷範囲を除去し、まっさらな状態から整えたいとき
💡 実装のヒント
- ▸PrintArea = "" で印刷範囲を解除できます
- ▸ActiveSheet.PageSetup.PrintArea で現在の設定を確認できます
- ▸全シート一括解除にはFor Each ws In Worksheetsでループします
- ▸印刷範囲だけでなく改ページ位置もリセットしたい場合は、ResetAllPageBreaksメソッドを併用してください。
- ▸特定のシートだけ除外したい場合は、シート名の配列でループ対象を絞り込む条件を追加してください。
💻 VBAコード
' ClearPrintArea
' -----------------
' Macro Name: ClearPrintArea
' Description: 印刷範囲をクリアする
' Parameters: なし
' Returns: なし
' Usage: 実行するとアクティブシートの印刷範囲がクリアされる
' -----------------
Sub ClearPrintArea()
Dim ws As Worksheet
On Error GoTo ErrorHandler
Set ws = ActiveSheet
If ws.PageSetup.PrintArea = "" Then
MsgBox "印刷範囲は設定されていません。", vbInformation
Exit Sub
End If
ws.PageSetup.PrintArea = ""
MsgBox "印刷範囲をクリアしました。", vbInformation
Exit Sub
ErrorHandler:
MsgBox "エラーが発生しました: " & Err.Description, vbCritical
End Sub