今回はExcelVBAの高速化の第4弾です。
第4弾は「配列を使う」です。
例えば下図のようなセル範囲A1:C6の商品マスタがあります。
E列にコードが入力されており、対応する品名をF列に表示させたい場合の例です。

E列には10001行目まで10000件分コードが入力されています。
以下のような繰り返し処理内にVlookup関数を使った記述で品名を表示させることができます。

これを配列を使った書き方に変更すると以下のようになります。

どのくらい実行速度に違いが出るかというと、それぞれ5回実行してみた結果です。
単位は秒です。
Test1 | Test2 | |
1回目 | 0.8515625 | 0.3046875 |
2回目 | 0.8515625 | 0.28125 |
3回目 | 0.8359375 | 0.28125 |
4回目 | 0.859375 | 0.28125 |
5回目 | 0.84375 | 0.2890625 |
Test2の配列を使用した記述の方が格段に速いのが確認できます。
Test1の方法もVlookup関数を使用した方法で十分早い書き方です。ただセルに10000回、対応する品名を代入しています。
一方、Test2は配列を使って代入は1回だけです。これが速度の違いになります。
このように配列を上手く使うと仕事で使っているコードも改善できる点があると思います!