[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『1シートに4レコードを連続印刷』(プリンシプル)
Sub 印刷() ':
If vbNo = MsgBox("「" & Worksheets("データ").Range("開始番号") & "」番より " & "「" & Worksheets("データ").Range("終了番号") & "」番まで印刷しますか", vbYesNo) Then Exit Sub
Range("印刷番号") = Range("開始番号")
Do While Range("印刷番号") <= Range("終了番号")
Sheets("印刷").PrintOut Range("印刷番号") = Range("印刷番号") + 1 Loop End Sub
上記例では、シート(印刷)の印刷番号セル(A1)は1箇所なのですが、プリント用紙の関係で、A1セルE1セルA11セルE11セルの4箇所にレコードの番号を振り分け連続印刷したいのですが。
1番から6番までのレコードを選択した場合、1枚目の用紙で1番から4番の4レコード分を印刷し、5番は2枚目のプリント用紙のA1セルに、6番はE1セルに、A11セルとE11セルはブランクになり合計2枚のプリントが連続印刷できるようにしたいのですが、サッパリ判りません。よろしくご教授願います。
番号だけを印刷するのですか? それとも、マクロが入力した番号を参照して 数式でそれぞれのセルにデータが表示されるように成っていますか?
まず、E1,A11,E11 セルにはそれぞれ =IF((A1+1)>終了番号,"",A1+1) の様な式をいれて 連番になるようにする。
そして、コードの方は 例えば、開始番号が 1だった場合 次の印刷時は 1+1 = 2 ではなく 1+4 = 5 に成ればよいので Range("印刷番号") = Range("印刷番号") + 4
の様にしてみるとどうでしょう。
(HANA)
マクロで番号を入力後に、その番号に対応したデータをVLOOKUPでA2、E2、A12、E12に表示させて4件1枚で印刷したかったのです。
すべてのセルにマクロで対応しようと悩んでおりましたが、E1セルに
=IF(A1="","",IF((A1+1)>終了番号,"",A1+1) 以下同様を入力して、アドバイスどおりに
コードを変更してできました。
ありがとうございました。
(プリンシプル)
うまくいきましたか、良かったです。
省エネなのでエコですよ!!
ちなみに >E1セルに =IF(A1="","",IF((A1+1)>終了番号,"",A1+1) 以下同様 これは、各セルで、「A1」部分を変更しているのかと思いますが A1セルを固定にして +1 ,+2 ,+3 の部分を変更しても 良かったかもしれません。
(HANA)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.