Microsoft® Visual Basic® Scripting Edition VBScript のコード記述規則 |
| 目次 | | 前ページ |
|
コード記述規則は、Microsoft Visual Basic Scripting Edition (以下 VBScript) でわかりやすいコードを記述するためのガイドラインです。コード記述規則には次のものがあります。コード記述規則を使ってソースコードを記述すると、スクリプトの構造とコード形式が標準化されるため、スクリプトの開発者および他の開発者がコードを参照し、容易に理解できるソースコードを作成できます。
- オブジェクト、変数、およびプロシージャの名前付け規則
- コメントの記述規則
- テキストの書式およびインデントについてのガイドライン
定数の名前には大文字を使用し、語句の間にアンダースコア (_) をつけます。次に例を示します。
USER_LIST_MAX NEW_LINE
一貫性があってわかりやすいコードを作成するために、VBScript のコードでは変数の内容を表す名前と共に次の表に示すプリフィックスを使用します。
内部処理形式 プリフィックス 使用例 ブール型 bln blnFound バイト型 byt bytRasterData 日付型 (時刻) dtm dtmStart 倍精度浮動小数点数型 dbl dblTolerance エラー型 err errOrderNum 整数型 int intQuantity 長整数型 lng lngDistance オブジェクト型 obj objCurrent 単精度浮動小数点数型 sng sngAverage 文字列型 str strFirstName
変数はできる限り小さな適用範囲を持つように指定する必要があります。VBScript 変数の適用範囲は次のとおりです。
適用範囲 変数の宣言場所 参照可能範囲 プロシージャ レベル イベント プロシージャ、Function プロシージャ、または Sub プロシージャ 宣言されたプロシージャ内で参照可能 スクリプト レベル HTML ページの HEAD セクション、プロシージャの外部 スクリプト内のどのプロシージャからも参照可能
スクリプトのサイズが大きくなると、変数の適用範囲を簡単に区別する値が必要になります。データ型を表すプリフィックスの前に適用範囲を示すプリフィックスを追加すると、変数の適用範囲を区別できます。
適用範囲 プリフィックス 使用例 プロシージャ レベル なし dblVelocity スクリプト レベル s sblnCalcInProgress
変数またはプロシージャの名前の本体部分には、用途を表す完結した名前を大文字と小文字を使用して付ける必要があります。 さらに、プロシージャ名は InitNameArray または CloseDialog のように動詞で始める必要があります。名前が頻繁に使用される場合、または長期間にわたって使用される場合は、標準的な省略形を使用して名前の長さを適度な長さにすることをお勧めします。 一般的に、変数名は 32 文字を超えると読みにくくなります。
省略形を使用する場合は、必ずスクリプト全体で統一してください。 たとえば、1 つまたは複数のスクリプト内で Cnt と Count を混在させると混乱が生じます。
次の表は、各オブジェクトに対して推奨されている名前付け規則を示します。
オブジェクト プリフィックス 使用例 3D パネル pnl pnlGroup アニメーション ボタン ani aniMailBox チェック ボックス chk chkReadOnly コンボ ボックス、ドロップダウン リスト ボックス cbo cboEnglish コマンド ボタン cmd cmdExit コモン ダイアログ dlg dlgFileOpen フレーム fra fraLanguage 水平スクロール バー hsb hsbVolume イメージ img imgIcon ラベル lbl lblHelpMessage ライン lin linVertical リスト ボックス lst lstPolicyCodes スピン spn spnPages テキスト ボックス txt txtLastName 垂直スクロール バー vsb vsbRate スライダ sld sldScale
各プロシージャの先頭には、その機能を示す簡単なコメントを記述する必要があります。機能の実現方法についての詳細を記述する必要はありません。プロシージャのコードは繰り返し変更されるので、不要なコメントや間違ったコメントを削除する保守作業が必要になります。プロシージャに渡す引数の用途が不明確な場合やプロシージャが特定の範囲内の引数を必要とする場合には、引数についてもコメントを記述する必要があります。また、関数が返す値や引数を参照することによりプロシージャ内で変更されるその他の変数についても、プロシージャの先頭にコメントを記述します。
プロシージャの先頭のコメントには次のようなセクションの見出しを付けます。次の「コードに書式を設定する」セクションの例を参照してください。
次の点を留意しておいてください。
セクションの見出し コメントの内容 用途 何をするプロシージャか。 外部からの影響 状況によってプロシージャに影響を与える外部の変数、コントロール、およびその他の要素の一覧。 外部への影響 外部の変数、コントロール、およびその他の要素に対するプロシージャの影響の一覧。 受け取る値 不明確な各引数の説明。各引数はそれぞれ別の行にインライン コメントを付けて記述します。 戻り値 返される値の説明。
- 重要な変数を宣言する場合は、宣言した変数の用途を説明するためのインライン コメントを必ず記述します。
- 変数、コントロール、およびプロシージャにはわかりやすい名前を付けます。インライン コメントには複雑な実行についての詳細だけを記述します。
- スクリプトの先頭にオブジェクト、プロシージャ、アルゴリズム、ダイアログ ボックス、およびその他のシステム固有の情報を列挙してスクリプトの概要を記述します。アルゴリズムの説明コードが役立つこともあります。
画面領域はできる限り節約する必要がありますが、論理構造およびネストがわかるようにコードの形式を整えることはできます。次にいくつかのヒントを示します。
- 通常、ネストするブロックは 4 つのスペースでインデントします。
- プロシージャの概要を示すコメントは、1 スペースだけインデントします。
- 概要を示すコメントに続く最上位のステートメントは、4 つのスペースでインデントします。ネストする各ブロックは、さらに 4 つのスペースでインデントします。次に例を示します。
'********************************************************* ' 用途: 配列 UserList 内で指定したユーザーに最初に ' 該当するユーザーを検索します。 ' 受け取る値: strUserList(): 検索対象のユーザーのリスト。 ' strTargetUser: 検索するユーザーの名前。 ' 戻り値: 配列 strUserList 内で strTargetUser に最初に ' 該当したユーザーのインデックス番号。 ' 該当するユーザーが見つからない場合は、-1 を返します。 '********************************************************* Function intFindUser (strUserList(), strTargetUser) Dim i ' ループ カウンタ Dim blnFound ' 対象が見つかったかどうかを示すフラグ intFindUser = -1 i = 0 ' ループ カウンタを初期化します。 Do While i <= Ubound(strUserList) and Not blnFound If strUserList(i) = strTargetUser Then blnFound = True ' フラグに True を設定します。 intFindUser = i ' ループ カウンタに戻り値を設定します。 End If i = i + 1 ' ループ カウンタの値に 1 を加算します。 Loop End Function