こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Excel VBAで印刷ジョブを一つにしたい

Excel VBAを使用して、シートAの元データの表の一行目から、

決められたセルに5レコードずつ読み込んで表示させる
AccessのレポートようなシートBを作りました。

シートAには約500レコードあり、
シートBのページ数は約100ページ分になります。

このシートBの100ページを一度に印刷したく
マクロを組み、ページを変えながらPrintOutメソッドで
印刷をしてみましたが、
プリンタのジョブが多くなりすぎて困っています。

Excelのみで、別のブックを使わずに解決する方法を探しています。
何か良い方法はないでしょうか。

よろしくお願いします。

投稿日時 - 2012-02-20 21:33:04

QNo.7317311

困ってます

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

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

>印刷ジョブを一つにしたい
 :
>プリンタのジョブが多くなりすぎて困っています。

というのがヤリタイ事なら,「一度に印刷する」しか手はありません。
マクロを使っているならやりようは幾らでもあります。

●シートBの続きにシートBの複製を必要数(100シート)束ねて(=作業グループにして)一気に印刷する
●1枚のシートBの中で「決められたセル」を行コピーで下に連ねて作成し,一気に印刷する




そういうやり口が気にくわないなら,次のような手もあるかもしれません。

for i = 1 to 100
worksheets("Sheet2").printout printtofile:=true, prtofilename:="c:\test\pr" & i
next i

のような段取りでプリントファイルを書き出しておき,
http://support.microsoft.com/kb/407544/ja
http://officetanaka.net/excel/vba/tips/tips27.htm
にあるような方法で,VBAからMS-DOSコマンドを使ってアナタのプリンタにまとめて送りつけます。

#Shell関数では多分上手く行かないので注意してください
http://support.microsoft.com/kb/149570/ja

投稿日時 - 2012-02-20 22:20:06

お礼

ご回答ありがとうございます。

ご説明が足らず申し訳ありません。
Excelのみでの解決法を探していまして、外部ファイルなども使用することは避けたいところでした。

しかしながら、
>●シートBの続きにシートBの複製を必要数(100シート)束ねて(=作業グループにして)一気に印刷する
>●1枚のシートBの中で「決められたセル」を行コピーで下に連ねて作成し,一気に印刷する

この2点は大変参考になります。試してみたいと思います。

投稿日時 - 2012-02-20 23:02:55

あなたにオススメの質問