Excel VBAでのセル入力処理

今まで気づかなかったが、Excel VBAで、セルにデータを入力するのはけっこう重い処理だった。以前に書いたが(http://d.hatena.ne.jp/ichiyu/20071121/p7)、エクセルのシート内部のデータを比較するマクロを作成している。あまりにも処理が遅いのでステップ毎に実行させてみると、セルにデータを入力するところで明らかにワンテンポ遅れている感じだった。ネットで調べるとセルにデータを入力するのに時間がかかるというのはよく知られたことらしい。対策としては配列にデータをまとめておいて、一度にセル範囲にデータを入力するというものが紹介されていた。確かにこの対策を実行すると明らかに早くなった。しかしもっと早くしようと考えて、最終的にはエクセルへの出力をあきらめ、テキストファイルに吐き出すようにした。これでさらに実行時間が半分にまで削減できた。当初は全体で10時間以上かかっていたのが30分程度になったので、これでようやく使い物になったかなという感じだ。