• 締切済み

エクセルでの段組印刷

エクセルで、200件データがあるとします。 1件は3つのセルで成っています。 50件目まで縦にそのままA4用紙に印刷して、 51件目から、同じ1ページ目の1件目の右隣から印刷し、 101件目からも同様に印刷したいのです。 切り取りや貼り付け作業をせずに設定することは可能ですか? また、1件目の上、51件目の上にそれぞれ タイトル行も印刷したいのですが。

みんなの回答

noname#9284
noname#9284
回答No.3

このご要望は本当に多いのですが、大変難しいですね。 もしWordで印刷しても宜しければ 1.Excelでその列をコピーし、 2.Wordにそのまま貼り付ける 3.Wordの書式メニュー→段組→4段にする(段数の数字を4にします) 4.WordのセルA1にあたるセルの中にカーソルを置く 5.Wordの罫線メニュー→タイトル行の繰り返し

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

案外難しいのです。 (1)A51:A100をB1:B50に関数で持ってくる。またA101:A150をC1:C50に関数で持ってくる。 そしてA1:C50を印刷する。 同じようにB151:B200にA201:A250をC151:C200にA251:a300を関数で持ってきてA151:C200を印刷する (2)VBAでプログラムを組む。 その場合は上記(1)をVBAプログラムで組む。 Sub test01() Dim sh1 As Worksheet Dim sh2 As Worksheet Set sh1 = Worksheets("sheet1") Set sh2 = Worksheets("sheet2") d = Range("A1").CurrentRegion.Rows.Count MsgBox d mm = 0 For i = 1 To d m = Int((i - 1) / 150) If m <> mm Then sh2.Activate sh2.Range(Cells(mm * 50 + 1, "A"), Cells(mm * 50 + 50, "C")).PrintOut sh1.Activate End If j = m * 50 + ((i - 1) Mod 50) + 1 k = Int((i - 1) / 50) + 1 k = ((k - 1) Mod 3) + 1 sh2.Cells(j, k) = sh1.Cells(i, "A") mm = m Next i sh2.Activate sh2.Range(Cells(mm * 50 + 1, "A"), Cells(mm * 50 + 50, "C")).PrintOut End Sub これも結構難しいコントロール(プログラムの流れの制御)を必要とします。 VBEの標準モジュールに貼りつけてやって見てください。 Sheet1をアクチブにして実行のこと。 600数十行でテストしました。 オートフィルで1-650までA列に数を入れる。 実行すると 1 51 101 ・・・・・・ 50 100 150 ------ 151 201 251 ・・・・・ 200 250 300 ----- 301 361 401 ・・・・・・ 350 400 450 ----- 451 501 551 ・・・・・ 500 550 600 ---- の紙が印刷されるはずです。

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

> 切り取りや貼り付け作業をせずに設定することは可能ですか? 毎回印刷、シートを変更するたびにやりたくない。という事ですと、印刷用のシートかマクロを利用すれば可能なように思えます。 新しいシートを作成、ページ区切りを表示で、数値を入力、コピーせずに、 =A1 =A2 などのように参照する式を利用して、適当にレイアウトした印刷用のシートを作成すれば良いのでは? -- 別のオンラインソフトを使用する方法ですが、 FinePrint2000 http://www.nsd.co.jp/share/fineprint/ を利用して、○in1印刷を行うと、近い事が可能です。

専門家に質問してみよう