先日の問題 の問1の回答

------------------------------------

問1 ブックの開き方/閉じ方

1. 印刷対象のブックを印刷前にすべて開く。印刷がすべて終了したときにすべて閉じる。

2. 印刷対象のブックを印刷直前に開き、印刷後に閉じる。これをブック数回繰り返す。

3. 印刷対象のブックを印刷直前に開き、印刷後は開いたままにする。印刷がすべて終了したときにすべて閉じる。

------------------------------------

 

考慮すべきことは何だろう?

一般ユーザーであれば、「確実に印刷されること」が重要だろう。その次に「速いこと」かと。

 

1997年か1998年のことだ。COBOLのプログラムのコンパイルリストを印刷するのではなくデータとして大型汎用機からダウンロードし、2000年問題で影響しそうなところをピックアップするための処理をVBAで作成した。

定義とその利用箇所をVBAで関連付けし、年月日に関するところを抜き出し、その中でも桁数の足りないところを色付けして影響調査をプリントアウトする処理だった。本数は800本くらいだったか。

 

その時、最初に行ったやり方が 上記の3. であった。しかし、夜10時ごろ、実行してすぐ帰ったのだが、翌朝10時で終わっていなかったのだ。

検証したところ、10ブック目を開いたあたりから急激に速度が落ちていたのだ。

そこで、上記2.の措置を取ったところ、問題は解消された。

 

つまり、正解は 2.となる。

1.はおそらく、全部OPENするまでに相当な時間を要するか、途中でエラーになるだろう。

 

PCのリソースは有限であること。不必要なメモリは解放してやること、が大量の処理が行われる場合には必要である。