📊 Excel VBA Top100
📋

ClearPrintArea

シート管理

印刷範囲をクリアする

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

ClearPrintArea デモ

📖 使い方

  1. VBAエディタを開く(Alt + F11)
  2. モジュールを挿入(挿入 > モジュール)
  3. 下記VBAコードをコピー&ペースト
  4. ブック上で実行(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