大量データの処理時間について

最近、大量のデータをExcelで扱うような案件をいくつか行っています。
目的の処理を実現するにはいろいろな方法があると思いますが、今回はものすごく簡単ではありますが、やり方により処理時間が大きく変わるというのを紹介しようと思います。

Excelの任意の行数×5列のセルにダミーの文字列を出力する」というのを以下2通りでやってみます。言語はExcel VBAです。

①単純に1セルずつ文字列を出力する
②2次元配列に文字列データを格納し、最後に Sheet.Range("指定セル範囲").Value = 配列 の形で一度に出力する

行数を変えてやってみた結果は以下になります。

行数:10000
ExcelTest1 処理時間:3.198秒
ExcelTest2 処理時間:0.062秒

行数:20000
ExcelTest1 処理時間:6.396秒
ExcelTest2 処理時間:0.140秒

行数:30000
ExcelTest1 処理時間:9.657秒
ExcelTest2 処理時間:0.202秒

行数:40000
ExcelTest1 処理時間:12.964秒
ExcelTest2 処理時間: 0.265秒

行数:50000
ExcelTest1 処理時間:16.208秒
ExcelTest2 処理時間: 0.344秒

予想はつきますが、行数と時間は比例関係にあり、行数が増大するほど処理時間に差が出るようです。
単純にこの秒数自体だけを見ても大した差は感じないかもしれませんが、例えば10回この処理の確認作業を行うとすると、10000行の場合でも差は30秒程と、結構大きいものになります。
(試験を行っている時などは、この30秒が非常に長く感じたります)

結局①と②は出力結果は同じなのですが、ユーザの方にとっての使いやすさや、開発の効率の向上など、処理時間は短いのに越したことはありません。
今後もこの点を頭に入れて開発に取り組んでいこうと思います。

弊社の情報に関しては、下記URLにてご覧になって下さい。

⇒ http://msystm.co.jp/