• 締切済み

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

Excel VBAを使用して、シートAの元データの表の一行目から、 決められたセルに5レコードずつ読み込んで表示させる AccessのレポートようなシートBを作りました。 シートAには約500レコードあり、 シートBのページ数は約100ページ分になります。 このシートBの100ページを一度に印刷したく マクロを組み、ページを変えながらPrintOutメソッドで 印刷をしてみましたが、 プリンタのジョブが多くなりすぎて困っています。 Excelのみで、別のブックを使わずに解決する方法を探しています。 何か良い方法はないでしょうか。 よろしくお願いします。

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.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

Uyrjyyf6sd
質問者

お礼

ご回答ありがとうございます。 ご説明が足らず申し訳ありません。 Excelのみでの解決法を探していまして、外部ファイルなども使用することは避けたいところでした。 しかしながら、 >●シートBの続きにシートBの複製を必要数(100シート)束ねて(=作業グループにして)一気に印刷する >●1枚のシートBの中で「決められたセル」を行コピーで下に連ねて作成し,一気に印刷する この2点は大変参考になります。試してみたいと思います。

関連するQ&A

  • EXCEL VBA シートの連続印刷に白黒印刷

    EXCEL VBAの初心者です。回答、指導をよろしくお願いします。EXCEL2003を使用しています。シートAとBを連続で印刷するVBAに白黒で印刷するVBAを加えたいのですが記述方法がわかりませんのでご指導お願いします。シートの連続印刷VBAは下記ですが、これでよろしいでしょうか。どなたかご指導よろしくお願いします。 Sub purint複数シート印刷() Sheets(Array("A", "B")).PrintOut End Sub

  • エクセル2000VBAからの印刷で実行時エラー1004発生

    エクセル2000のVBAマクロ中で印刷をしよう として、実行時エラー1004が発生し、原因が分からず 苦慮しています。 (前略) Sheets("ラベル印刷").Select ... ActiveSheet.PageSetup.PrintArea = "$A$1:$B$2" ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True を実行すると、WorksheetクラスのPrintOutメソッドが 失敗しましたというエラーがでます。 色々試して、 Worksheets("ラベル印刷").Activate ActiveSheet.PrintOut とやってみたり、シートの名称をデフォルトのSheet1に 戻したりしても同様でした。 同じモジュール中で、 Sub printtest()   Worksheets("ラベル印刷").PrintOut End Sub というのを記述して、VBAエディター中で実行ボタン (▼)で実行したり、ワークシートのツール/マクロの 実行から実行すると問題なく印刷できます。 ところが、マクロを改造してこのサブルーチンをコールする ようにすると、上と同様の現象が出ます。 別のPCで試みても再現されました。 他の部分は完成したつもりなのに、印刷が出来ず困っております。 アドバイスお願いします。

  • Excel VBAのPrintOutメソッドにつきまして

    毎々お世話になります。 ExcelのVBAにてシート編集→印刷を実施しておりますが、印刷が行えない事象が発生しております。(100%ではありません。) ----------------------------------------------- ExlObj.ActiveSheet.PrintOut '印刷開始 ExlObj.DisplayAlerts = False ExlObj.Quit 'Excelの終了 Set ExlObj = Nothing ------------------------------ シート内のレコードが多く大量の枚数を印刷する場合、PrintOutメソッドから次の処理(Quit→オブジェクト破棄)を行ってますが、PrintOutから次の処理に移った後にExcelオブジェクトが残ることはないでしょうか? また、ActiveSheetのCloseは必ずQuit前に実施する必要はありますでしょうか?

  • エクセルVBA初心者です

    参考書籍を教えてください 質問1 会社でエクセルマクロを使う機会が増えました。大抵のことはマクロの記録で対応してますが、細かいファイル操作が出来ません。VBAを勉強する必要があると思ってます。何か良い参考書はありませんか? 質問2 ブックAでマクロAを作りました。マクロAの中で、ブックBのマクロBを実行させてます。マクロBは、計算結果としてブックB上に新シートを作成し、終了します。その後、マクロAに戻りブックBの新シート上のセル2個を選択しコピーし、ブックAにてペーストさせようとしてます。 マクロAはブックA上で「マクロの記録」で作成しました。 実行させると、マクロBの終了時点でストップするようです。 何がマズイのでしょうか?

  • Excel2007のVBAでPreviewすると

    初めまして。 Excel2007のVBAで困っていることがあり解決方法を探しています。 もともとExcel97で稼働していたマクロ+VBA付きのシートをExcel2007で稼働させようとしています。 マクロ・VBAで作成されたシート(sheet2)をフォームに配置した印刷ボタンをユーザーに押してもらうことでプレビューを表示します。 印刷ボタンを押したときのプレビューのコード Worksheets("sheet2").PrintOut Copies:=1, Preview:=True でプレビュー画面を表示したところ、印刷ボタンや印刷設定ボタン等の上部にあるボタンが薄いグレーの配色で押せなくなりました。 調べた結果、ScreenUpdatingがfalseだと同じ状態になるとわかったので Application.ScreenUpdating = True Worksheets("sheet2").PrintOut Copies:=1, Preview:=True と書き換えましたが、不具合は解消されませんでした。 またブックを閉じずに、マクロを再起動させて同様の動作をおこなうと 何故かちゃんとボタンが押せるプレビューが表示します。 その状態のブックを保存して改めて開くと同じようにプレビューのボタンが押せなくなっています。 同じような現象で解決された方いらしたら解決方法を教えて頂ければありがたいです。 よろしくお願いいたします。

  • エクセル印刷のマクロでで”部単位で印刷”をしないようにできるでしょうか?

    エクセルの印刷で Selection.PrintOut Copies: = Range("D5").Value のマクロで印刷していますが、 部単位で印刷(o)にチェックが入っているので 一枚ずつのジョブになってしまいます。 マクロでページごとに印刷することは できるのでしょうか?

  • VBA 印刷 画面

    エクセルVBAについて。 ワークシートの印刷をVBAで行っています。 worksheets("○○○").printout ワークシートを複数印刷する際に、逐一 そのワークシートに画面遷移しないようにするには、どうすればよいでしょうか? よろしくお願いします。 Excel2010以上

  • 印刷枚数を指定して印刷(印刷しないシートを含む場合)

    マクロ(VBA)の超超初心者です。 エクセルのブックの全シート(13sheet)の印刷を1つのシートで管理するマクロを作りたいと思っています。 下記のマクロでチェックしたシートのみ印刷することは可能になりました。 Sub チェックしたシートの印刷() Dim rng, shChk, PrtSh For Each rng In Range("IDX") If rng.Offset(0, -1) = 1 Then shChk = shChk & rng.Value & "," End If Next shChk = Left(shChk, Len(shChk) - 1) PrtSh = Split(shChk, ",") Sheets(PrtSh).Select ActiveWindow.SelectedSheets.PrintOut End Sub そこにさらに印刷枚数を指定して印刷したいのですが、下記のマクロだと、0枚(印刷しないときの)の設定ができません、、、 0枚でもマクロを実行できるよにするにはどうしたらよいのでしょうか、、、 さらに、このマクロを簡単に書きたいのです。(ほぼ同じことの繰り返しなので、、、、) Sheets("sheet1").PrintOut Copies:=Range("A1").Value Sheets("sheet2").PrintOut Copies:=Range("A2").Value ・     ・ ・ Sheets("Sheet13").PrintOut Copies:=Range("A13").Value End Sub 超超初心者があつかましい質問ですが、ご教授のほうよろしくおねがいいたします。

  • VBAで印刷するとエラーになってしまいます。

    VBAで印刷するとエラーになってしまいます。 EXCELシートをボタンの押下で印刷するマクロを組んだのですが、 実行すると必ずエラーになってEXCEL自体が落ちてしまいます。 添付画面を参照して下さい。 普通にEXCELの印刷([ファイル]->[印刷])から印刷すると問題なく印刷できます。 何か足りないものがあるのでしょうか? どなたか教えてください 以下ソース ---- Private Sub btn_Print_Click() 'ActiveSheet.PageSetup.CenterHeader = "&B&12印刷" ActiveWorkbook.Worksheets(1).PrintOut End Sub ----

  • Excel Vba でデータの範囲を知るには?

    Excelを使用していますが、マクロ(VBA)で、シートのデータの範囲を知るにはどうすればよいのでしょうか。  印刷プレビューを行うと、自動的にページ数が求めらていますが、これは、シートのデータの範囲(列及び行の最大値)を判別しているからできるのだと思います。  これを、VBAで行、及び列のMAX値を取得したいのですが、そのメソッド(プロパティ)を知りたいのです。  どなたかご教授ください。

専門家に質問してみよう