月次のデータを顧客のDBに当てて、住所や顧客名を引くコードを書いている。
月次の件数が5万件、顧客DBが9万件強。
ExcelのシートでFor分を使って回すと埒が明かないので、一旦メモリ(2次元配列)に突っ込んで回してみたんだけど、やっぱり8分強かかってしまう。
8分でも流石に長いので、なんかいい方法はないかとネットをググっていたら、Dictionaryと云うのを見つけた。
所謂、連想配列ってやつ。
VBAで使えるのは、知らなかった。
早速、キーと値はDBのシートの行番号をDictionaryに突っ込んで実行してみた。
いままでは、For文で9万行のなかからキーを探さないといけなかったのが、Dictionaryはキーを与えれば即座にValue(値・ここではDBシートの行番号)がかえってくる。
通しで実行してみると、14秒で出力できた。
すばらしい。
いままでも同じようなコードは書いてきたけど、ここまで件数が多いことはなかったのでFor文で回していたのだけど、この方法はいいなあ。
これからは、Dictionaryを使うことにしよう。
--
のち
いちじ
No comments:
Post a Comment