>データの最後の行までのページを印刷できるようにする
データの最終行を、泥臭く、一行一行空白かと聞いて探すことにします。
>最後のデータより下の行もずっと罫線が引いてあります。
印刷したデータ最終行の下辺は罫線がないと、締りがなくて、いやですから罫線を引きます。
>最後のデータより下の行もずっと罫線が引いてあります
難しいのは、その罫線表に一杯にデータが入った時、1ページで印刷できるものかどうかです。
次ページに跨る場合は見だし部分などを次ページ(以下)にも印刷せねばならないでしょうから。
改ページなしに印刷するメソッドを知らないので、別シートに編集して、そのページが別シートに完成後、別シート
を印刷します。
Sub test01()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set sh1 = Worksheets("sheet1")
Set sh2 = Worksheets("sheet2")
'--一たんすべてコピー
sh1.Range("a1:e50").Copy
sh2.Activate
sh2.Range("a1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
'------データ行について
j = 3
p01:
For i = 3 To 2 + 40
If sh1.Cells(j, "A") = "" Then Exit For
sh2.Cells(i, "A") = sh1.Cells(j, "A")
sh2.Cells(i, "B") = sh1.Cells(j, "B")
sh2.Cells(i, "C") = sh1.Cells(j, "C")
sh2.Cells(i, "D") = sh1.Cells(j, "D")
sh2.Cells(i, "E") = sh1.Cells(j, "E")
j = j + 1
Next i
sh2.Range(Cells(i - 1, "A"), Cells(i - 1, "E")).Borders(xlEdgeBottom).LineStyle = xlContinuous
sh2.Range(Cells(i, "A"), Cells(50, "E")).Clear
' sh2.Range(Cells(1, "A"), Cells(50, "E")).PrintOut
'----42行を越えると繰り返し
If i > 2 + 40 Then
sh2.Range("A3:E42").ClearContents
GoTo p01
End If
End Sub
この質問ぐらいの内容になると、マクロの記録の技量だけでは難しい気がします。上記も類似(と思っている)例で出来る例がありますというヒント程度を示すものであり、VBAの経験者があちこちチューニングして、初めて質問の目的のようになるのであって、そのままで一発で動くとか思い通りであることは期待できません。実際の問題を目の前においてプログラムを組まないと、ちょっとした違いでも動かないとか結果がおかしいことがありますので、甘く期待しないで下さい。
もちろん少数例ではテスト済みですが。
テストはSheet2を全セル指定、編集-クリア-すべて、でクリアして繰り返してやって下さい。
お礼
いつもお世話になります。 今回は、なんとか出来ましたので今後参考にさせていただきます。 お礼が大変おそくなりご迷惑をおかけしました。ありがとうございました。