質問

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

通報する

回答 (3件)

このご要望は本当に多いのですが、大変難しいですね。
もしWordで印刷しても宜しければ

1.Excelでその列をコピーし、
2.Wordにそのまま貼り付ける
3.Wordの書式メニュー→段組→4段にする(段数の数字を4にします)
4.WordのセルA1にあたるセルの中にカーソルを置く
5.Wordの罫線メニュー→タイトル行の繰り返し

案外難しいのです。
(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
----
の紙が印刷されるはずです。

> 切り取りや貼り付け作業をせずに設定することは可能ですか?

毎回印刷、シートを変更するたびにやりたくない。という事ですと、印刷用のシートかマクロを利用すれば可能なように思えます。

新しいシートを作成、ページ区切りを表示で、数値を入力、コピーせずに、
=A1
=A2
などのように参照する式を利用して、適当にレイアウトした印刷用のシートを作成すれば良いのでは?

--
別のオンラインソフトを使用する方法ですが、

FinePrint2000
http://www.nsd.co.jp/share/fineprint/

を利用して、○in1印刷を行うと、近い事が可能です。

このQ&Aは役に立ちましたか?1 件

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

新しく質問する

注目の記事

フリーアナウンサー長谷川豊氏の新コーナー「このニュースどう思います?」がスタート!

元フジテレビのフリーアナウンサー長谷川豊氏から気になるニュースについておしトピの皆さんに質問します! 皆さんの意見をもとに長谷川豊氏がコラムを執筆します! アプリリリース記念として最大1万分のアマゾンギフト券プレゼントキャンペーンも実施中!


新しく質問する

このカテゴリの人気Q&Aランキング

毎日見よう!教えて!gooトゥディ