お客様の作成されたマクロ(VBA)を拝見すると、ときどきコードの行頭がグループごとに揃っていないため、一読して何が書いてあるのか分かりづらいことがあります。
また変数名が短かすぎたり、変数名が適当でなく誤った解釈をしてしまったり、一つのプロシージャにすべての処理を入れてしまっていたりで、マクロの解読に非常に時間がかかることもあります。
そうならないためにも、マクロは他人が読んでもすぐ理解できるものにしましょう。 他人が手直しする場合を考慮するのは当然ですが、自分で保守を行うことを考えても、
分かりやすいコーディングを心がけることは大事です。
マクロを作成するときは、その処理について完璧に理解できていても、時間が経てば、本人でも忘れてしまっているかもしれません。
まして他人が修正する場合は、コードだけが頼りです。そのコードが分かりづらければ、多大な時間と労力をかけてしまいます。
プロジェクトやグループでシステム開発する場合は、それぞれコーディングルールのような決まりごとがあると思います。しかし個人で作成する場合は、そこまで厳格なものは必要ないでしょう。
でも最低限次のようなことは、注意してコーディングした方がよいでしょう。
字下げ(インデント)の実施
ループ文、条件文は、グループ内で字下げして階層構造にする。
しかし階層が深くなりすぎると却って分かりづらくなりますので、そのときは他の方法も検討を。
意味のある変数名に
変数名は、名前だけで変数の内容が分かるようにする。(例:PriceIncludingTax/税込み金額)
これもスペルがあまり長くなると、打ち込みが大変になりますのでほどほどに。
大文字と小文字を組み合わせる
変数名は英数字にして、大文字と小文字を組み合わせたものにする。(例:csvLastRow)
プロシージャ内でこのように宣言しておけば、すべて小文字で打ち込んでも、大文字小文字に変換してくれます。
大文字小文字に変換されない場合は、スペルミスということになります。
プロシージャの分割
あまりプロシージャが大きくなりすぎると、全体の把握が難しくなります。
ある程度大きくなったら、プロシージャを機能単位で分割することを考えましょう。
プロシージャの標準的な大きさというのはありませんが、一画面に収まらなくなってきたら、分割できないか検討してみましょう。
同じ処理が繰り返し出現している箇所は、そこを サブルーティン化することでコードがスッキリします。
|
|
●字下げしていないコード
|
●字下げをしたコード
|
|