• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:印刷履歴を別シートに自動で残していきたいです)

印刷履歴を別シートに自動で残していきたいです

このQ&Aのポイント
  • 印刷履歴を自動的に残すために、提供されたコードを使用して連番での印刷を実行しています。現在、Sheet1とSheet2を使用しており、各番号ごとにそれらのシートが印刷されています。
  • Sheet3を追加して、印刷履歴を自動的に保存することは可能でしょうか。履歴には印刷日、開始番号、終了番号を含めたいと考えています。ただし、Sheet3は確認用としてのみ使用し、印刷はSheet1とSheet2のままで十分です。
  • 提供されたコードは、個人的な研究に基づいて作成されたものであり、完全な知識は持っていません。どうか指導していただけないでしょうか。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

むつかしいのではないですか。 ーー 印刷はVBAで指令しなくても、手動でも行える。するとVBAの範囲を通らないから、下記のようなことでは印刷をとらえられない。 Bookのイベントに「BeforePrint」があるが、印刷しているシート(名)を(普通返すならShでかえす)返す引数がない。ので、シートは捉えられない。 何かあるVBAのルーチンを通ったということで印刷したとしてよいなら、下記コードの ようなことを(別ファイル(テキストファイルなどでも、別シートでも)記録すればよい。 説明のための例 Sub test01() Worksheets("Sheet1").Range("a1:A8").PrintOut L = Worksheets("Sheet3").Range("A1000").End(xlUp).Row MsgBox L Worksheets("Sheet3").Cells(L + 1, "A") = "Sheet1の" & "範囲A1:A8を印刷" & Date & Time() '--- Worksheets("Sheet2").Range("a1:A8").PrintOut L = Worksheets("Sheet3").Range("A1000").End(xlUp).Row MsgBox L Worksheets("Sheet3").Cells(L + 1, "A") = "Sheet2の" & "範囲A1:A8を印刷" & Date & Time() End Sub 2つのシートの印刷を別モジュールに分けて、別印刷起動にしても、コードを分けるだけで、同じでしょう。 印刷を実行して、プリンターエラー等が起こって、紙印刷がされていないことも起こるが、 それをVBA程度のスクリプトではとらえるのは難しい。 「印刷作業に取り掛かかったようだ」という程度のメモ的事実でよければ、テキストファイルやデバッグPrintでコメントを記録すればよいのかも。 質問者の目的(印刷物の使途と照らし合わせて)回答に自信がないですが、参考にして、補足の「ダシ」にでもしてください。

kametaro58
質問者

お礼

回答ありがとうございます! 印刷を二手に分けることも候補に入れ、記載して頂いたコードをひとつひとつ確認しながら進めていきます。