好きなおでんの具材ドラフト会議しましょう

ExcelでVBAを用いた連続印刷処理についての質問です。
質問の趣旨は、
①Vlookupによるシートの更新処理
②プリンターへの印刷実行処理
の順番について、①が完全に終わらない状態で②が行われる不具合の可能性があるかどうかです。


たとえば、A1セルに番号を指定するとその番号をVlookupの検索キーとしてシート内の情報が自動的に更新されるようなシートがあるとします。以上はVBAではなく、シートに入力された数式による処理です。

このとき、VBAでA1セルに指定する番号を1から10に自動的にカウントアップしていき、都度、シートの印刷を行います。具体的には、例えば

For a = 1 To 10
Range("A1").Select
ActiveCell.FormulaR1C1 = a '①
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True '②
Next

のようなForループで処理を自動化したときに、
 A:①でA1の値が更新される
 B:☆A1の値がVlookupで参照されて、他のセルの値が更新される
 C:②印刷の実行
が問題なく行われるとよいのですが、☆の処理がある程度膨大なときに、☆の処理が完全に終わる前に②の処理が実行されてしまうような不具合はあるのでしょうか?

このような処理について改善点などがある場合も教えていただけたら嬉しいです。

A 回答 (2件)

数式の計算に時間がかかればタイミング的に途中でプリンタにデータが送られるかもしれませんね。


⇒個人的にはそこまでの処理はした事ないですが、印刷回数を増やした時に他者からの印刷指示(プリンタを共有にしてたので)も絡んで印刷できない(プリンタのメモリがパンク?)事はありました。
古い話ですのでメモリも少ない時ですが。
    • good
    • 0
この回答へのお礼

QAにお付き合いいただきありがとうございます。

>式の計算に時間がかかればタイミング的に途中でプリンタにデータが送られるかもしれませんね。

やはり懸念はのこるのですね。また、プリンタのメモリの影響などもあるのですね。印刷の自動化処理を良しと考え、印刷時間が少し長くなったとしても、Forループの中などでApplication.Waitなどを使って待ち時間を設けるのがよいのかな、と考えているところです。

お礼日時:2021/04/27 20:54

カウントを取るなり変数:a の値が幾つ毎(値を定数で割った時の余りが0の時など)の時に一時停止するようにしてみるとか?



https://www.officepro.jp/excelvba/application_ot …
https://www.sejuku.net/blog/66722

プリンターにデータを送らなければ印刷はされないでしょう。
ただ送った順番に印刷されるかはプリンター側のデータ保管にもよるかもです。
これ自体はパソコン側とは切り離されてますので。
    • good
    • 0
この回答へのお礼

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

vlookupによるデータの計算処理に時間がかかるようなら待ち時間を設けることはよいかもしれません。

そもそも、☆の処理で、シートの計算処理が追い付かないまま②に進み、印刷処理が実行されてしまうことはあるのでしょうか?

お礼日時:2021/04/26 23:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A