Excelで難しいのが、環境差異等により生じる改ページ変動(想定している改ページ通りに印刷されない状況)
これを検出する方法はないもんかとやってみた。まだ課題はあるものの、メモっておく
メモ
Option Explicit Sub ページ高さチェック() '改ページプレビューで表示 ActiveWindow.View = xlPageBreakPreview Dim lastRowNum As Integer '再下行行番号 Dim beforeRowNum As Integer '1つ前の改ページ直下行番号 Dim beforeHeight As Integer '1つ前の改ページ内の行の数 Dim i As Integer Dim threshold As Double ’ ページ間の高さの比(この値を下回ったら改ページ変動とする) threshold = 0.5 lastRowNum = Cells(Rows.Count, 1).End(xlUp).Row beforeRowNum = 1 For i = 1 To ActiveSheet.HPageBreaks.Count If i > 1 Then If ((ActiveSheet.HPageBreaks(i).Location.Row - beforeRowNum) / beforeHeight) < threshold Then Debug.Print "意図しない改ページかもしれません:" & beforeRowNum End If End If beforeHeight = ActiveSheet.HPageBreaks(i).Location.Row - beforeRowNum beforeRowNum = ActiveSheet.HPageBreaks(i).Location.Row Next ' 印刷範囲最下については別途計算の必要あり If ((lastRowNum - beforeRowNum) / beforeHeight) < 0.5 Then Debug.Print "意図しない改ページかもしれません:" & beforeRowNum End If End Sub
実行例
このケースでは、2ページ目、4ページ目を検出したい
意図しない改ページかもしれません:27 意図しない改ページかもしれません:55
一応意図した動きではあるが、現在の方式だと、A列最下行に文字が入っていないと誤判定してしまうので、印刷範囲最下行を取得して判定できればよいかなと思います。