1.第三者にもわかるようにできるだけコメントを入れる
コメントを書く位置はその処理の横か上にする(短い時は横、長い時は上)
エラー処理や数行にわたる処理の場合は、処理を挟むように書く[※例]
コメントの内容例
・どのような処理をしているか
・変数に入れられない数字や文字がある場合はその意味
・変数の意味
・IF文の分岐条件やループ処理の範囲回数の詳細説明など
・application.run で別モジュールのマクロを呼び出すとき、そのマクロの位置
※例
’ここからエラー処理
処理
’エラー処理ここまで
2.インデントを付ける
「Sub ~ End Sub」や「If ~ End If」や「For i ~ Next i」など対になるものは同じ高さに揃える。
上記それぞれの中身は一段ずつインデントを付ける。
インデントの幅はタブ一つ分(タブの幅は半角スペース四つ分)。
※例
Sub テスト()
For 条件文
If 条件文
処理
End if
Next i
End Sub
3.変数宣言はプロシージャの先頭に書く
「Dim 変数名」は「Sub プロシージャ名()」の直後に全てまとめる。
4.変数は一つずつ分かりやすい日本語の名前で型指定とともに宣言する
変数一つにつき、一行で書く。
変数名は基本的には全て日本語。
For文のi・jは可。
※例
× Dim number, name
↓
○ Dim 機番 As Long
Dim 製品名 As String
5.正体不明の数字や文字列を可能な限り登場させない
分かりやすい名前の変数にいれたり、変数にできない場合はコメントを付ける。
※例
× Cell(1, 1) = 5
↓
○ Dim 製品番号
製品番号 = 5
Cell(1,1) = 製品番号
6.グローバル定数は頭にpub_を付ける
7.グローバル定数を使用する場合、「M_グローバル定数」という名で専用のモジュールを作る
8.モジュール名はそれぞれ以下のような接頭語を付ける
M_(標準モジュール名)
C_(クラスモジュール名)
F_(フォームモジュール名)
T_(テーブル名) ※Access
Q_(クエリ名) ※Access
9.DoWhile、DoUntil、グローバル変数は可能な限り使用しない
10.VBEのオプションで「変数の宣言を強制する」に必ずチェックを入れる
トーコンでは、実際に使用する現場で働く人が自分たちで使いたいツールを作ることを目指しています。
使用者=作成者であれば作業内容を理解していて、効率的に開発を進めることができるためです。
しかし、それぞれの作成者が自分の好きなように書いてしまうと、他の人には読みにくいコードになってしまいます。
作成者が不在時や異動などで離れてしまった場合、不具合の修正や手直しができない、ということになってしまうと大変ですね。
業務を引き継いだ後も延々と修正依頼の電話が掛かり続けるなんてことになると、現場も自分も困ってしまいます。
そうならないためにも、VBAを書く際には他の人が見ても分かるように心掛けましょう。
時々このページを見返して自分の書き方を振り返ってみると自分のクセに気付けるかもしれません。