マクロでなら 出来ると思いますが、、、
改ページの位置を検出して、その行の上の行に罫線を引けばいいと思います。
下の例ではA列(1列目)で最終行を検出して、最終行までの改ページの上の行に
中太の罫線をA列からz列(26列目)まで下罫線を引きます。
最終行を見つける列(この例ではA列)と
シート名や罫線の太さ、罫線の列は 環境に合わせて修正してください。
標準モジュールのOption Explicitの直下に以下を貼り付けてください
Dim 改頁行 As Long
Dim 最終行 As Long
Dim シート名 As String
Dim I As Long
Sub 改頁設定()
シート名 = "Sheet1" '←実際のシート名を
If ActiveSheet.Name <> シート名 Then Exit Sub
最終行 = Cells(Rows.Count, 1).End(xlUp).Row 'データ(A列)の最終行
Application.ScreenUpdating = False
For I = 1 To ActiveSheet.HPageBreaks.Count
改頁行 = ActiveSheet.HPageBreaks(I).Location.Row
If 改頁行 > 最終行 Then: Exit For
' A列(1)からZ列まで下罫線を引く
With Range(Cells(改頁行 - 1, 1), Cells(改頁行 - 1, 26)).Borders(xlEdgeBottom)
.LineStyle = xlContinuous '←実線、破線=xlDash、なし=xlLineStyleNone
.Weight = xlMedium '←中線、極細=xlHairline、細=xlThin、太=xlThick
End With
Next
With Range(Cells(最終行, 1), Cells(最終行, 26)).Borders(xlEdgeBottom)
.LineStyle = xlContinuous '←実線、破線=xlDash、なし=xlLineStyleNone
.Weight = xlMedium '←中線、極細=xlHairline、細=xlThin、太=xlThick
End With
Application.ScreenUpdating = True
End Sub
'-------------------End Subまで貼り付け
以下は引いた罫線を消すためのものです。
引いた罫線と同じ太さの罫線を見つけて消します。
・・・).Weight = xlMedium Then の xlMediumは上記の例で引いたものと
同じにします。
Sub 罫線削除()
シート名 = "Sheet1" '←実際のシート名を
If ActiveSheet.Name <> シート名 Then Exit Sub
最終行 = Cells(Rows.Count, 1).End(xlUp).Row 'データ(A列)の最終行
Application.ScreenUpdating = False
For I = 1 To 最終行
If Range(Cells(I, 1), Cells(I, 26)). _
Borders(xlEdgeBottom).Weight = xlMedium Then
Range(Cells(I, 1), Cells(I - 1, 26)). _
Borders(xlEdgeBottom).LineStyle = xlLineStyleNone
End If
Next
Application.ScreenUpdating = True
End Sub
どちらも標準モジュールにコピーしてください。
上の「改頁設定」はThisWorkbookのモジュールに以下をコピーすると、印刷または
プレビューする時に自動で走ります。先に印刷プレビューを見てください
Private Sub Workbook_BeforePrint(Cancel As Boolean)
改頁設定 ' 印刷前に改頁設定へ飛ぶ
End Sub
消す方は、印刷が終わったことを検知出来ないので どうしても手動で起動になるでしょう。
お礼
条件付き書式で、希望通りの動きになりました!!!! ありがとうございます!!!! ただひとつ疑問が・・・。 条件付き書式を設定した後保存すると、改ページの設定が勝手に変わってしまいます。。。 保存すると何故か何かデータが入ったように右に1行増えてしまい、 例えば通常2ページ分のデータでもプレビューすると4ページ(右に2ページ分の空のページ)になってしまうのです。 調べてもよくわからないので・・・また別に質問しようと思います(^^; 本当にありがとうございました!!
補足
たくさんご親切にありがとうございます!! そうですよね。。。 ですが、こちらの案も凄いです!こんな事ができるのですね! ちょっと考えて・・・応用すればできるかもしれません。。。 やってみたらまたご報告させていただきます!