ダイアログ・ボックスが開いているかどうかの確認
操作を実行する前に、ダイアログ・ボックスが開いているかどうかを確認することをお勧めします。このチェックは、たとえば次のような場合に有効です。
-
ダイアログ・ボックスの更新は不要だが、グリッドを更新する必要がある場合。
-
ダイアログ・ボックスが開いている状態ではワークフロー・イベントを実行してはならない場合。
ダイアログ・ボックスが開いているかどうかの確認には、DialogBox イベントを使用します。
ベスト・プラクティス
予期しない結果が返されないようにするには、イベントが発生する前に、ダイアログ・ボックスが開いているかどうかを確認します。
次の例では、新しい不具合を作成するダイアログ・ボックスが開いているかどうかを確認します。BG_USER_01 フィールドを変更可能にするのは、新規不具合のみです。不具合の編集など他のダイアログ・ボックスが開いている場合、BG_USER_01 フィールドは編集できなくなります。
例:
' 各ダイアログ・ボックスのグローバル変数を宣言 Dim NewDefectDialogIsOpen ' グローバル変数を初期化 NewDefectDialogIsOpen = False Sub DialogBox(DialogBoxName, IsOpen) If DialogBoxName="New Bug" Then NewDefectDialogIsOpen = True Else NewDefectDialogIsOpen = False End If End Sub Function Bug_FieldCanChange(FieldName, NewValue) ' 関数の戻り値を初期化し、 ' 予期しない動作を回避 Bug_FieldCanChange = True ' BG_USER_01 フィールドが変更可能なのは新規不具合のみ If FieldName="BG_USER_01" Then If NewDefectDialogIsOpen Then Bug_FieldCanChange = True Else Bug_FieldCanChange = False End If End If End Function

