#12 命名規則とコーディング規約
2020-03-13 00:00:00
VBAにかぎらずプログラミングを行ううえで、適切な名前をつけるということは極めて重要です。VBAでもプロシージャ、変数、パラメータ、モジュールなど様々なものに対して名前をつける必要があります。名前に使える文字はVBAの仕様で決められていますが、基本的には下のルールで大丈夫だと思います。(日本語の使用は可能ですが、日本語を使った名前は避けるというのが私の方針です。)
- アルファベット始まり
- アルファベット・数字・アンダースコア(_)のみをつかう
- 全角文字はつかわない
実はコーディング中に最も時間をかけていることの一つが命名だと思います。使われる範囲(ループで使うだけか、グローバル変数か)なども考慮しながら、処理やデータの内容を的確にあらわした名前をつけることができると、コードの読みやすさがあがります。
小文字、大文字については、プロシージャは大文字はじまりで書くのがスタンダードだと思います、プロシージャ内の変数については、マイクロソフトのサンプルでもいろいろなので、決まりはなさそうですが、私は小文字はじまりで書くことが多いです。
変数のタイプを先頭につけるハンガリアン記法は、使っている人はほとんどいないかもしれませんが、ワークシートやワークブックにsht~やbk~というような名前をつけるのは個人的に便利に感じることが多く、実際によく使います。Longにl~、Stringにstr~という名前をつけるのは避けた方が良いと思います。
命名規則以外のコーディング規約としては
- 正しくインデントする
これが一番重要だと考えます。チームや個人で使っている規約がない場合にも、これだけはきちんとルール化してほしいです。プロシージャ、IFブロック、ループなどの開始行できちんとインデントしていないコードはとても読みにくいです。特にコピペした後のコードのインデントをなおさずに使ことがないようにしてもらいたいです。(編集ツールバーをつかえば、1行ずつTabで調整する必要はありません。)
その他にも、1行の長さを短くするとか、プロシージャの行数を制限するとか、空白行の使い方に注意するなど、可読性を高めるコツはいろいろあります。
一貫性があるコードは読みやすく、バグの発見にもつながりますので、必要に応じてチームや個人で規約を作成するのも良いと思います。