Excelで大量のデータを、高速で読み書きする。
記事
IT・テクノロジー
セルのデータを読み書きする場合、一般的には 次のようなコードが知られています。
Dim i as Integer
Dim j as Integer
Dim value( 16384, 64) as String
'' 読出し
For I = 1 to 16384
For j = 1 to 64
value( i, j) = ActiveSheet.Cells(i, j) ''< 読出し
ActiveSheet.Cells(I, j) = value(I, j) ''< 書込み
Next
Next
ですがこの方法だと、扱うデータが大量になると処理時間が 大幅に長くなる問題があります。
そこで私は、実務でExcel VBAを使う中で、同じ量のデータを 高速で読み出したり/書き込んだりする手法を確立しました。
上記のサンプルコードと同じ分量のデータで比較すると、
<従来の方法>
・読出し処理 8秒 (8000ミリ秒)
・書込み処理 32秒 (32000ミリ秒)
<私の方法>
・読出し処理 0.3秒 (300ミリ秒)
・書込み処理 7.9秒 (7900ミリ秒)
と、処理時間を大幅に短縮することが可能です。
お困りでしたら、是非、お声がけください。