ダイアログ・ボックスが開いているかどうかの確認

操作を実行する前に、ダイアログ・ボックスが開いているかどうかを確認することをお勧めします。このチェックは、たとえば次のような場合に有効です。

  • ダイアログ・ボックスの更新は不要だが、グリッドを更新する必要がある場合。

  • ダイアログ・ボックスが開いている状態ではワークフロー・イベントを実行してはならない場合。

ダイアログ・ボックスが開いているかどうかの確認には、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

先頭に戻る