見出し画像

VBA日記#4他人のコードは理解してから使いましょうという話。

どもSousaです。
今回は書籍やネットのサンプルコードを使う際や、
ネットでの質問を利用する場合の注意点について話していきたいと思います。

最近は逆引き辞典でそのまま使えるサンプルコードがあったり、
知恵袋などの場所で親切にも、やりたいことを実現できるコードを提供してくれたりします。

そのようにして手に入れたコードは便利に見えますがリスクがあります。
どんなリスクなのか。それはいたってシンプルです。
ちゃんと理解して使用していない場合、メンテナンスができなかったり、
応用できなかったりします。

メリットもあります。
自分一人では思いつかないコードに出会えることです。
他人のコードの書き方は参考になります。
こんな書き方ができるのか、と感動することも少なくないでしょう。
ですが注意点として自分らしくないコードはそのまま使わずに、
自分の書き方に修正してから使うべきだと思います。

VBAerの中には、数年使っているが全然上達しないといった声もあるようです。
謙遜も中にはあるでしょうが、本当に上達できてない人は、
他人のコードを理解せずに活用するということを多用する傾向にあると思います。
他人のコードからはテクニックだけではなく、
そのコードを書き上げるに至ったマインドの部分を学ぶ必要があります。

例として私が最近目からうろこだった書き方を紹介しておきます。

Dim myFlg as Boolean
Do Until myFlg
 myFlg = True
 処理
 If 条件 then
   myFlg = False
 End if
Loop

myFlgというのをフラグとして使っています。
Do Untileが条件式がTrueになるまで繰り返す、というものなので、
都合が悪いときにフラグにFalseを入れれば、繰り返してくれるというものです。問題がなければ初めにTrueを入れているので抜け出します。
これ見たときになるほどな!!と思いましたね。
myFlgという関数作ればもっと複雑な判定条件でも実装可能ですし、いい書き方だな~と感動しておりました。

おそらく駆け出しのVBAerだとこのコードの仕組みまでは理解できないと思います。
ですが、自分のやりたいことが実現できるということで、理解はできていないけれど活用してしまう人は少なくないと思います。
非常にもったいないと思います。
これらのサンプルコード等からDo whileやUntileの性質に新たな気付きを得ることが大切になってきます。

なんでそのコードで動いているのか、その書き方のメリットは何なのかなど、考えたり調べたりするのは面倒だとは思いますが、
その積み重ねがないともっと面倒なことになります。
少しずつで何の問題もありません。
どれだけゆっくりでも成長できているならばいずれサンプルコードを書く側に回れるでしょう。

私はまだそんなレベルには行けていませんがね!!

VBAは楽しい。
VBAを活用できまくる職場に行きたい。。。。

Sousaでした!ばい!


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