|    | 
     ▼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 
 | 
     
    
   |