見出し画像

[正しいVBAの使い方]Write once run once

VBA使っていますか?

RPAが持て囃される世の中かもしれませんが、今もどこかでマクロは動いています。
(というかRPAじゃ全然操作できなくてVBAに逃げてることも多いんだけど、どゆこと???)

さて、そんなVBAですが、個人的にVBAは「普通は」こういう風に使うものだよな、という哲学的なものを持っています。

(思想の違う方は多いと思いますが)どのような思想か紹介したいと思います。

Write once run once

Write once, run anywhereWORA、「一度〔プログラムを〕書けば、どこでも実行できる」

wikipedia

Javaを使う人なら一度は聞いたことのあるフレーズだと思います。

Javaは仮想マシン上で動作するため、一度書きさえすれば、どんなOSでも動作するし、それゆえ書き替える必要はないというキャッチフレーズです。

その真逆を行くのがVBAではないか、と捉えています。

Write once run once、要は「使い捨て」です。

VBAは安定動作させるのが難しい言語だと思います。影響される外部要因が多いことや、暗黙の型変換で思いもよらないエラーが起こります。

そのため、VBAは一回書いたら何度も使う、ではなく欲しくなったら書いて使い捨てするのが、本来の用途ではないかと思います。

突発的に、大規模データをまとめないといけない

こういうときにサクッと書いて、サクッと捨ててしまうのがVBAの強みだと思います。

いくつもの複雑な処理を組み合わせてフルオートメーションにする、といったことは外乱要因を増やしますし、安定稼働させるために多くのコードが必要になります。

そうではなく、今、この状態を解決させるために使うのがVBAの一番効果的な使い方だろう、という思想を持っています。

使い回しの効くライブラリを沢山用意しておいて、欲しいときにはサクサクと書いて捨ててしまう。

本来、VBAはこういうものではないかなと思います。

VBAのおすすめ教本

VBAをしっかり書くためには、独特な暗黙の了解を知っておく必要があります。

VBAをがっつり書けるようになりたい、という方はこちらの本をおすすめします。

この記事が気に入ったらサポートをしてみませんか?