UserFormメソッド/モーダルダイアログ

Short ExecuteForm

モーダル・ダイアログの実行を行います。

ボタンが押されるか、ウィンドウがクローズされるまで制御を返しません。

戻り値

押されたボタンのcommandnumberか、あるいは-1が返ります。

-1はウィンドウのクローズを意味します。

備考

モーダルの例

ソースコード

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で標準より少し小さくしています。