| 
    
     |  | ▼IK さん: 
 こんにちは
 
 具体的なレイアウトの説明がないので、テンプレートといいますかサンプルです。
 以下のコードでは Sheet1 にあるデータのうち、開始指定行から終了指定行まで、
 A列〜E列の5列分を、20行ずつ、Sheet2(フォーマットシート)の C3:G22 の 20行、5列に転記して
 印刷しています。
 
 開始指定行、終了指定行は、固定値で与えていますが、ここは IK さんのロジックで求めている値を
 使ってください。
 
 Sub Sample()
 Dim pArea As Range
 Dim f As Long
 Dim t As Long
 Dim z As Long
 Dim flag As Boolean
 
 Application.ScreenUpdating = False
 
 Set pArea = Sheets("Sheet2").Range("C3:G22")
 
 f = 10  '印刷すべきデータの開始行
 t = 60  '印刷すべきデータの最終行
 
 With Sheets("Sheet1") '元シート
 Do
 z = f + 20 - 1 'この印刷ブロックの最終行
 If z >= t Then
 z = t
 flag = True
 End If
 
 pArea.ClearContents
 pArea.Resize(z - f + 1).Value = .Range("A" & f & ":E" & z).Value
 pArea.Parent.PrintOut
 
 If flag Then Exit Do
 
 f = z + 1
 
 Loop
 End With
 
 pArea.ClearContents
 Set pArea = Nothing
 Application.ScreenUpdating = True
 
 MsgBox "印刷終了"
 
 End Sub
 
 |  |