- 締切済み
Excel VBAで印刷ジョブを一つにしたい
Excel VBAを使用して、シートAの元データの表の一行目から、 決められたセルに5レコードずつ読み込んで表示させる AccessのレポートようなシートBを作りました。 シートAには約500レコードあり、 シートBのページ数は約100ページ分になります。 このシートBの100ページを一度に印刷したく マクロを組み、ページを変えながらPrintOutメソッドで 印刷をしてみましたが、 プリンタのジョブが多くなりすぎて困っています。 Excelのみで、別のブックを使わずに解決する方法を探しています。 何か良い方法はないでしょうか。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- keithin
- ベストアンサー率66% (5278/7941)
>印刷ジョブを一つにしたい : >プリンタのジョブが多くなりすぎて困っています。 というのがヤリタイ事なら,「一度に印刷する」しか手はありません。 マクロを使っているならやりようは幾らでもあります。 ●シート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
お礼
ご回答ありがとうございます。 ご説明が足らず申し訳ありません。 Excelのみでの解決法を探していまして、外部ファイルなども使用することは避けたいところでした。 しかしながら、 >●シートBの続きにシートBの複製を必要数(100シート)束ねて(=作業グループにして)一気に印刷する >●1枚のシートBの中で「決められたセル」を行コピーで下に連ねて作成し,一気に印刷する この2点は大変参考になります。試してみたいと思います。