Select Case ステートメントと If-Then-Else ステートメントでの標準設定の動作の定義
Select Case ステートメントや If-Then-Else ステートメントでは、標準設定の処理を定義しておかないと、予期しない結果が返される可能性があります。
ベスト・プラクティス
予期しない結果が返されないようにするには、Select Case や If-Then-Else ステートメントでは、標準設定の動作を必ず定義します。
次の例では、コード内ですでに定義した Select Case ステートメントと If-Then-Else ステートメントでは対応できない状況に適用するために、標準設定の動作が正しく定義されているコードと誤ったコードを紹介します。
このサブルーチンでは、不具合のステータスが Open、New、Reopen のいずれかの場合にのみ BG_USER_01 フィールドを表示しようとしています。ただし、ステータスが Closed または Fixed の不具合の IsVisible プロパティが True に設定された状態でこのサブルーチンのインスタンスが呼び出されると、ステータスが Closed または Fixed の不具合でもフィールドが表示されてしまいます。このような動作が発生するのは、Closed と Fixed のステータスを処理する Case ステートメントが定義されていないためです。
例:
Sub Bug_FieldChange(FieldName)
If FieldName="BG_STATUS" Then
Select Case Bug_Fields(FieldName).Value
Case "Open", "New", "Reopen" _
Bug_Fields("BG_USER_01").IsVisible = True
End Select
End If
End Sub
すべての可能性に対処したサブルーチンです。
例:
Sub Bug_FieldChange(FieldName)
If FieldName="BG_STATUS" Then
Select Case Bug_Fields(FieldName).Value
Case "Open", "New", "Reopen"
Bug_Fields("BG_USER_01").IsVisible = True
Case Else
Bug_Fields("BG_USER_01").IsVisible = False
End Select
End If
End Sub

