• ベストアンサー

エクセルの印刷範囲について

エクセルの印刷について質問です。 B列に1~4000までの数字が入っているのですが、その中で1~1000、1001~2000、2001~3000、3001~4000までの行を、P列まで、と区切って印刷するのに、毎回手作業で印刷範囲を設定して印刷しています。 マクロなどを組むことで自動かする方法はないかと思い質問させていただきました。 どなたかアドバイスいただけないでしょうか??

質問者が選んだベストアンサー

  • ベストアンサー
  • qwe2010
  • ベストアンサー率19% (2223/11204)
回答No.1

別のシートに、1~1000、1001~2000と、 コピー、形式を選択して貼り付け、リンク貼り付け、をして、シートごとに印刷すればよいでしょう。 全てのシートを選ぶ場合は、Shiftを押したままシートを選択して、印刷すれば1回の操作で済みます。 飛び飛びの場合は、Ctriを押して印刷するシートを選んでください。 印刷範囲ですが、右クリックで、範囲を選び、表示しないにすると、表示をしているところだけが印刷されます。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! 1行目は項目行でデータは2行目以降にあり、1~4000までの数値がB列にあるとします。 コツコツ手作業でやる場合は まずA~P列全体を「印刷範囲」に設定しておきます。 次にB列でオートフィルタを掛ける → 「数値フィルタ」 → 「指定の範囲内」 → 「1」以上 かつ 「1000」以下 としてOK これで印刷すれば 1~1000 のデータが印刷されます。 同様に「1001」以上「2000」以下・・・と4000まで行います。 どうしてもVBAというコトであれば一例です。 シートモジュールにしてください。 Sub Sample1() Dim i As Long, lastRow As Long With ActiveSheet lastRow = .Cells(Rows.Count, "B").End(xlUp).Row For i = 1 To 4 .Range("A1").AutoFilter field:=2, Criteria1:=">=" & (i - 1) * 1000 + 1, _ Operator:=xlAnd, Criteria2:="<=" & i * 1000 .PageSetup.PrintArea = Range(.Cells(2, "A"), .Cells(lastRow, "P")).SpecialCells(xlCellTypeVisible).Address .PrintPreview '←印刷プレビューだけにしています。★ .PageSetup.PrintArea = "" Next i .AutoFilterMode = False End With End Sub ※ 「★」印の行を見てもらえばわかると思いますが、 「印刷プレビュー」でやめています。m(_ _)m

すると、全ての回答が全文表示されます。