実はVBAを盛んに書いていた頃には、
あまり配列を使っていなかった。
恥ずかしながら、当時はよくわかっていなかったし、
そこはエクセル。
エクセル側の表として扱うことで、
さほど配列も必要としていなかった。
しかし、近年JavascriptやPythonなど他言語を学ぶ中で、
配列で処理の思考グセがついた模様。
久し振りにVBAを書いていて、
早速配列の必要性が生じ、
VBAでの配列のお作法を復習。
GASを触った経験があるので、
行列のセルデータを扱う感覚は分かる。
が、しかし、ハマる。。。
要素のインデックス指定がうまくいかず、
要素の範囲外エラーが出て動きません。
調べていくと、なんと、セル範囲から配列に
取り込んだ場合には、配列の基礎とも言える0始まりでなく、
1から始まる仕様だそうな。。
うーん、もはや配列は0始まりに慣れており、違和感しかありません。
まぁそんな感じで、言語固有の差異でハマりつつも、
配列を使う事でスマートなコードが書けて、満足。
また、他にも我ながら成長を感じた事が、
debug.printを適宜使いながらコーディングを進められている点。
これまた、一番VBAを触っていた時ですら、やる事もなかったのですが、
console.logやらprintに慣れたせいか、とても有用に当たり前に使っております。
他言語を学ぶって、大事ですね!
プログラミング初心者の心得を説くものに、
分からない点は飛ばしてしまって構わない、と言う説があったりします。
確かに、いろいろなコードを書いていく中で
突如ブレイクスルーがやってくるものです。
「なるほど、そういう事だったのか!」
「おー、こう書くとめちゃめちゃ便利じゃないか!」
などなど。
近年は、脱エクセルを標榜しがちな自分でしたが、
とは言えやはり仕事現場でのエクセルはまだまだ絶対的存在だったりします。
そのエクセルを便利に扱うために、VBAはやっぱり活躍します。
今一度、基礎をさらいつつ学び直しておこうと思います。