UserFormメソッド/モーダルダイアログ
Short ExecuteForm
モーダル・ダイアログの実行を行います。
ボタンが押されるか、ウィンドウがクローズされるまで制御を返しません。
戻り値
押されたボタンのcommandnumberか、あるいは-1が返ります。
-1はウィンドウのクローズを意味します。
備考
- 本メソッドを実行する前にフォームがすでに表示されていてはなりません。
- ESCキー押下するとウィンドウのクローズとなります。
- 本メソッドの実行によりフォームが表示され、ウィンドウを閉じるかボタンを押下し制御が返されるとフォームは非表示となります。
- 非表示になったフォームは再度本メソッドで表示させることができます。
モーダルの例
ソースコード
Option Explicit
Dim obj: Set obj = CreateObject("SeraphyScriptDialog")
Dim frm: Set frm = obj.CreateForm()
frm.FormTitle = "ユーザー情報の入力"
frm.FormWidth = 250
frm.DefineLabel "姓を入れてください"
Dim nEdit1: nEdit1 = frm.DefineEdit()
frm.DefineLabel "名前を入れてください"
Dim nEdit2: nEdit2 = frm.DefineEdit()
Dim btn1: btn1 = frm.DefineButton("了解;キャンセル")
Dim ret: ret = frm.ExecuteForm()
If ret = btn1 Then
MsgBox frm.Value(nEdit1) & frm.Value(nEdit2)
End If
実行結果

例: モーダルの例
解説
フォーム上にDefineButtonメソッドにより2個のボタンを定義しています。
明示的にcommandnumberを指定しない場合、最初のボタンのcommandnumberはコントロール番号と同じです。
そのため、「了解」ボタンが押された場合のみ、エディットボックス1,2の内容をメッセージボックスに表示しています。
ESCキー、あるいは×ボタンによりウィンドウを閉じるか、あるいはキャンセルボタンを押下した場合は無視しています。
なお、フォームの幅はFormWidthで標準より少し小さくしています。