コラム

【VBA開発規約】命名規約

日本頭脳株式会社は、VBAプログラムに関する命名規約について、以下のとおり定義します。

 

1.命名には、日本語を用いること

 

変数名やプロシージャ名など各種名称には、利用者の言語圏の言語を用いるものとし、ここ日本においては日本語による命名を行わなければなりません。プログラムの命名はすべて英語(現実には英語とも言えない日本語英語になっています)が使用されるのが標準的なルールとなっていますが、VBAツールは基本的に極めて局所的な利用(企業内の特定部署内の特定メンバー間で共有される、など)を想定するものです。よって、日本語圏外など他の地域で使用されることがほとんど想定されないため、変数名やプロシージャ名などに日本語を用いても全く問題になりません。もちろん、外資系企業の日本法人などで利用者に英語圏の人が含まれる場合は、利用者の言語圏の言語を用いるものとします。

 

2.命名には、極めてわかりやすい言葉を用いること

 

第三者がプログラムを見てもある程度理解できるよう、極めて平易でシンプルでわかりやすい言葉を用いなければなりません。わかりやすくするためであれば、名称の文字長が多少長くなっても問題ありません。

悪い例1)Dim a As long, b As string

何の意味もない文字を変数名として使用している最悪のケースです。それぞれの変数が何に使用されるのかわからないですし、変数名が短すぎて他のプログラムに埋もれて誤読を引き起こす可能性もあり、さらに別の名称に置換する場合などはプログラムを細かく見ていかなければならないなど、デメリットしかありません。

悪い例2)Dim iRow As Integer, sName() As String

プログラマー経験者ですとこのような書き方で書くことが多いと思います。Integerの「I」やStringの「S」など、変数の型を先頭に表すハンガリアン記法と、簡潔な英単語を用いるものです。しかし、この英単語も日本人が書くと正しい英語表現になっていないことが多く、さらに「Row」というのは何の行なのか、「Name」というのは何の名前なのかなど、肝心な情報が不明瞭のままです。また、型を変更するときにすべての変数の先頭を変更しなければならないなど、ハンガリアン記法の面倒な点もあります。

良い例1)Dim 書込行 As long, 都道府県 As String

悪い例と比べてほしいのですが、圧倒的に可読性が高まっていて、変数の目的も明確になっています。書き込み先の行を表すから「書込行」、都道府県の名称を表すから「都道府県」、というように、VBAの未経験者でも何のことか理解できるようになります。変数に日本語を使うのはNGというプログラミングの熟練者の方をよくお見受けします。その論理も一理ありますので否定はしません。弊社では日本語圏の利用者しかいない企業様向けにツールを開発することが多く、弊社のVBA講座を受講される方の99%は日本企業で日本語圏の人に囲まれて仕事している中でツール開発するため、名称に日本語を使うというのはとても合理的なことであると考えます。

無料相談・お見積り依頼、その他どんなお悩みでもお気軽にご相談ください!
無料相談・お見積り依頼、その他どんなお悩みでもお気軽にご相談ください!

03-6427-6442

平日9時~18時