UserFormメソッド/コントロールの配置

Short DefineListBox(Variant list, Variant value, Variant line, Variant multi)

リストボックスを作成します。

引数

list
表示するリスト項目をセミコロン区切りで定義します。
たとえば「abc;def;xyz」のように指示します。
value
初期選択とするリストの0から始まる選択番号を整数で指定します。
省略すると未選択となります。
multi引数を1とした場合は複数選択可能となり、その場合はセミコロン区切りで複数の選択番号を文字列で指定します。
たとえば「0;1」のように指定します。
line
リストの表示行数を指定します。
省略するか1未満の場合は1行が設定されます。
multi
1を指定した場合は複数選択可能となります。
省略した場合、もしくは0の場合は単一選択となります。

戻り値

コントロール番号が返されます。

イベント

モードレスの場合、リスト上の操作によりコントロール番号のイベントが発生します。

備考

未選択の場合のValue値は-1となります。

lineで指定する行数は、コントロールの行数を表しており、中のアイテムの行数とは無関係です。

通常、コントロールの高さのほうがアイテムの高さよりも大きいことに注意してください。

サンプル

Option Explicit
Dim obj: Set obj = CreateObject("SeraphyScriptDialog")
Dim frm: Set frm = obj.CreateForm()
Dim lst1: lst1 = frm.DefineListBox("a;b;c")
Dim lst2: lst2 = frm.DefineListBox("abc;def;xyz", 1, 3)
Dim lst3: lst3 = frm.DefineListBox("月;火;水;木;金;土;日", "0;1;2", 7, 1)
Dim btn1: btn1 = frm.DefineButton("OK")
Dim ret: ret = frm.ExecuteForm()
If ret = btn1 Then
    MsgBox "lst1=" & frm.Value(lst1) & vbCrLf _
        & "lst2=" & frm.Value(lst2) & vbCrLf _
        & "lst3=" & frm.Value(lst3)
End If

例: リストボックスの例