VBAは他のプログラミング言語と決定的に違う弱点がある。

 

それは、配列の処理が苦手なことである。

 

Excelはそもそも、シートやブックなどのオブジェクトを扱うものだ。

パソコン初心者でも、直感的に理解できるのがExcelの特徴であると同時に、弱点を産み出している。

 

VBAで自動化する処理にしても、シートやブックを操作することが主になる。

 

結果、配列は使おうと思わなければいつまでも覚えることが出来ない。

 

なぜなら、処理の結果は必ずしも配列で処理をする必要がなく、シートに書き出してしまえば良いからだ。

 

そしてそれを見越してか、配列に関する処理はVBAではほとんど用意されていない。

 

例えばあるシートのデータを二次元配列に転記し、さらに別のシートのデータを追加したい場合、いちいちFor文でループしながら処理をする必要がある。

 

他言語であれば、「配列.Add」などの記述で終わるところ、VBAは一行で終わることは無い。

 

 

逆に言えば、ユーザー定義関数で配列処理をまとめておけば、凄まじい業務改善(コーディング効率化)効果が期待できる。

 

配列はVBAの高速化が出来るし、配列を使わないでいちいちシートに処理を書き出すというのは、論理エラーが発生する要因にもなる。