見出し画像

やっぱりVBAはすごいと思った話

VBEは無駄に高機能なのか?

 VBEはVBAを編集するための専用エディタのことです。趣味でも仕事でも15年以上使い続けてきました。その機能は手引書やネットに詳しく書かれていて、自分でも不自由なく使いこなしていると思ってました。たまに、こんな機能を誰が使うんだろう。「無駄に高機能だ」と感じることがありましたが、それについて深く考察することもなく十数年過ごしてきました。ですが、最近になって、こうやって使えば良いのかと思うことが何点かありました。

例えば、コードをどこに書けばよいのか

 VBEにはコードを書くスペース「モジュール」がたくさんあります。ほとんどの場合どこに書いても問題なく動作するから、ほぼSheetにくっついてるSheetモジュールを使ってきました。ほかにブックモジュール(ThisWorkbook)と、無限に追加できる標準モジュールというのがあります。

メインプログラムを標準モジュールに書き、シートモジュールから呼び出す

 例えば、複数のシートにまたがるマクロを組む時、クラス時間割というシートから変数kamokuに値を代入するとします。そのスクリプトは
 kamoku= Worksheets("クラス時間割").Cells(i, j).Value
 ですが、VBEの標準モジュールを使うと大幅に省略できます。
 kamoku=Cells(i, j) だけです。

 これをクラス時間割のモジュールから呼び出せば同じ結果になります。プログラミングの煩わしさを可能な限り軽減するよう工夫されています。

 プログラムを本職にしている人にはどうでもいいことなのかもしれませんが、事務処理のためにマクロを組んでる人間にとっては大きな違いがあります。「エクセル」の完成度はやっぱりすごいです。
 他にもありますが、下の動画を見ていただけるとうれしいです。