VBAは他のプログラミング言語と決定的に違う弱点がある。
それは、配列の処理が苦手なことである。
Excelはそもそも、シートやブックなどのオブジェクトを扱うものだ。
パソコン初心者でも、直感的に理解できるのがExcelの特徴であると同時に、弱点を産み出している。
VBAで自動化する処理にしても、シートやブックを操作することが主になる。
結果、配列は使おうと思わなければいつまでも覚えることが出来ない。
なぜなら、処理の結果は必ずしも配列で処理をする必要がなく、シートに書き出してしまえば良いからだ。
そしてそれを見越してか、配列に関する処理はVBAではほとんど用意されていない。
例えばあるシートのデータを二次元配列に転記し、さらに別のシートのデータを追加したい場合、いちいちFor文でループしながら処理をする必要がある。
他言語であれば、「配列.Add」などの記述で終わるところ、VBAは一行で終わることは無い。
逆に言えば、ユーザー定義関数で配列処理をまとめておけば、凄まじい業務改善(コーディング効率化)効果が期待できる。
配列はVBAの高速化が出来るし、配列を使わないでいちいちシートに処理を書き出すというのは、論理エラーが発生する要因にもなる。