【Excel VBA】印刷総ページ数を取得する方法と改ページの点線を非表示にする方法

Excelで作成した資料を印刷する前に「全部で何ページになるか」をマクロで取得したり、編集作業中に表示される「改ページの点線が煩わしい」と感じたりすることはありませんか?

VBAを使えば、これらの情報を簡単に取得・操作することが可能です。この記事では、実務で役立つ2つの短いコード、**「印刷総ページ数を計算する方法」「改ページの区切り線の表示・非表示を切り替える方法」**を解説します。


目次

印刷の総ページ数を取得する方法

シートが印刷時に合計で何ページになるかは、水平・垂直両方の改ページ(PageBreak)の数を数えることで計算できます。

コードと解説

Sub ShowTotalPrintPages()

    ' 変数を宣言します
    Dim targetSheet As Worksheet
    Dim horizontalBreaks As Long
    Dim verticalBreaks As Long
    Dim totalPages As Long
    
    ' 現在アクティブなシートを操作対象に設定
    Set targetSheet = ActiveSheet
    
    ' 水平方向(横)の改ページの数を取得
    horizontalBreaks = targetSheet.HPageBreaks.Count
    ' 垂直方向(縦)の改ページの数を取得
    verticalBreaks = targetSheet.VPageBreaks.Count
    
    ' 総ページ数を計算
    totalPages = (horizontalBreaks + 1) * (verticalBreaks + 1)
    
    ' 結果をメッセージボックスで表示
    MsgBox "このシートの総印刷ページ数は " & totalPages & " ページです。"
    
End Sub

この計算のポイントは、**「ページの数 = 改ページの数 + 1」**という関係が成り立つ点です。

  • 横方向に1つも改ページがなければ、横のページ数は1です (0 + 1 = 1)。
  • 横方向に1つ改ページがあれば、横のページ数は2です (1 + 1 = 2)。

総ページ数は、この**「横方向のページ数」と「縦方向のページ数」を掛け合わせる**ことで求められます。このコードは、印刷範囲の設定や拡大縮小率を反映した現在の状態でのページ数を返します。


改ページの点線を非表示にする方法

一度印刷プレビューなどを行うと、シート上にページの区切りを示す点線が表示されます。この表示は、VBAで簡単にオン・オフを切り替えることができます。

コードと解説

Sub HidePageBreakLines()

    ' 現在のシートの改ページの点線を非表示にする
    ActiveSheet.DisplayPageBreaks = False
    
End Sub

Sub ShowPageBreakLines()

    ' 現在のシートの改ページの点線を表示する
    ActiveSheet.DisplayPageBreaks = True
    
End Sub

.DisplayPageBreaksは、ワークシートが持つプロパティ(設定値)の一つです。

  • ActiveSheet.DisplayPageBreaks = False: この値をFalseにすると、点線が非表示になります。
  • ActiveSheet.DisplayPageBreaks = True: この値をTrueにすると、点線が表示されます。

これらのマクロをクイックアクセスツールバーなどに登録しておくと、ボタン一つで表示を切り替えられるようになり、編集作業が快適になります。


まとめ

今回は、印刷と表示に関する2つの便利なVBAテクニックをご紹介しました。

  • 総ページ数の取得: (HPageBreaks.Count + 1) * (VPageBreaks.Count + 1) で計算できる。
  • 改ページの点線の表示/非表示: ActiveSheet.DisplayPageBreaks プロパティの値を True または False に設定する。

どちらも短いコードで実現できるため、ご自身のマクロに組み込んだり、日々の業務効率化ツールとして活用したりしてみてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次