質問: range("$b$1") + 1 '印刷する番号の加算 if range("$b$1") > range("$b$4") then exit for '印刷終了番号にを越えたら終了 activewindow.selectedsheets.printout copies:=1 '印刷命令 next a end sub excelで以上のようなマクロを組みました。 a3のセルに印刷を開始するシート2にあるデータを含むページ(vlookupで参照)のページ数を、b1に印刷を終了する同じシート2にあるデータを含むページ(vlookupで参照)のページ数を入力して、a4で150枚程度の印刷を行うマクロです。 用紙節約のため、a4の用紙に4枚、あるいは2枚を集約して印刷したいのですが、上の特定のページから特定のページへ印刷するマクロにどのようなマクロを組み込めば、a4の用紙に4枚、あるいは2枚を集約して印刷ができるでしょうか。ご教示のほど宜しくお願いいたします。 バージョンはexcel 2007 os windows 10です。印刷機器はnec2900cです。
回答: そのマクロでは、集約印刷する事は出来ません。 >どのようなマクロを組み込めば、a4の用紙に4枚、あるいは2枚を集約して印刷ができるでしょうか 幾つかの方法があります。 最も簡単な方法は、 1.1シートの中に2セットまたは4セットの印刷様式を配置 数式を使用して、n番とn+1番、あるいはn+2、n+3番を参照する 2.ページ設定で2セットあるいは4セットを紙の1枚に縮小して印刷する設定にしておく 3.マクロを使い、nの値に2つおきあるいは4つ飛ばしの数字を記入する for a = range("a3").value to range("b3").value step 4 activesheet.printout next a といった段取りになります。 また別のアプローチとしては for a = range("a3").value to range("b3").value worksheets("ひな型").copy after:=worksheets(worksheets.count) activesheet.range("b1").value = a next a のようにして+1ずつのシートを必要枚数シートコピーして増殖、最後に全シートを束ねて(=「作業グループ」にして)一気に印刷するような方法も可能です。 プリンタの機能でnアップ(1枚の紙に2枚あるいは4枚に縮小印刷)を使い、必要なら両面も設定して印刷します。