【VBAリファレンス|実務向け】ページ区切りの点線を消す|Excel VBA

スポンサーリンク

導入

Excelで印刷プレビューを開いた後、ワークシート上に現れる「点線(改ページプレビューの線)」に困ったことはありませんか?この線は視覚的に邪魔になるだけでなく、データ編集時に誤操作を誘発することもあります。手動でオプションから消すことも可能ですが、VBAで制御すれば、レポート出力用のマクロを作成する際に「常にクリーンな状態」でユーザーにシートを見せることが可能です。今回は、この地味ながら重要な表示設定をプログラムで制御する方法を解説します。

基礎知識

Excelにおいて、改ページ位置を示す線には「手動で挿入した改ページ線」と「Excelが自動計算した改ページ線」の2種類があります。
VBAでは、Worksheetオブジェクトに対してこれらの表示・非表示を切り替えるプロパティが用意されています。
・DisplayPageBreaks: ページ区切り全体を表示するかどうかを制御します。
・DisplayAutomaticPageBreaks: 自動改ページ線を表示するかどうかを制御します。

実装/解決策

実務において最も推奨されるのは、DisplayAutomaticPageBreaksプロパティをFalseに設定することです。通常の印刷プレビューを開くと、Excelは自動的にこの設定を「表示」に戻してしまいます。そのため、マクロの最後にこのコードを仕込むことで、常に点線を非表示にした状態で作業を完結させることができます。

サンプルプログラム

Sub ClearPageBreaks()
‘ 対象となるシートを変数にセット(ここではアクティブシート)
Dim ws As Worksheet
Set ws = ActiveSheet

‘ ページ区切りの点線を非表示にする
‘ DisplayAutomaticPageBreaksをFalseにすることで、
‘ 自動改ページ線が表示されないように設定します。
ws.DisplayAutomaticPageBreaks = False

‘ 補足:もし手動で設定した改ページ線も含めて完全に消したい場合は
‘ 以下のようにDisplayPageBreaksもFalseに設定してください
ws.DisplayPageBreaks = False

MsgBox “改ページ線(点線)を非表示にしました。”
End Sub

応用・注意点

この「DisplayAutomaticPageBreaks」というプロパティですが、実はVBAのオブジェクトブラウザではデフォルトで「非表示」になっています。
1. VBAエディタ(VBE)を開く
2. オブジェクトブラウザ(F2キー)を起動
3. 右クリックメニューから「非表示のメンバを表示」にチェックを入れる
これを行うことで、グレーの文字でこのプロパティが存在することを確認できます。

注意点として、この設定は「ブック単位」ではなく「アプリケーション設定(またはシート単位)」に強く影響されます。印刷プレビュー画面を閉じた直後にExcelの仕様で強制的に表示されることがあるため、マクロで印刷処理を行う場合は、印刷実行の直前、あるいは終了処理の最後にこのコードを走らせるのが、現場で最も安定した挙動を実現するコツです。

タイトルとURLをコピーしました