listbox

リストボックスを開き、ユーザーに項目を選択させる。

listbox <message> <title> <string array> [<selected>]

パラメータ

文字列 <message>
リストボックスに表示されるメッセージ。
文字列 <title>
リストボックスのタイトル。
文字列型配列 <string array>
リストボックスの選択項目。
整数値 <selected> (バージョン 4.89 以降)
初期選択項目(0オリジンインデックス)。省略可能。

返り値

システム変数 <result>
項目が選択された場合、0 - (N-1)のいずれかの値が格納される。
キャンセルされた場合、-1が格納される。

解説

listbox マクロコマンドは <string array> の配列要素をすべて選択項目として表示します。
以下のように、表示しようとする選択項目数より大きい要素数で <string array> を定義すると、最後に空文字列が表示されます。

strdim msg 4
msg[0] = 'バナナ' 
msg[1] = 'りんご' 
msg[2] = 'みかん'
listbox '好きな食べ物を選んでください' 'あなたへの問い' msg

; 選択肢が4つ表示される
バナナ
りんご
みかん
[空文字列]

(バージョン 4.89 以降)
<selected> を指定する事で、初期状態で選択されている項目を指定する事ができます。
省略した場合は 0 (先頭)が指定されたものとして扱われます。

strdim msg 3
msg[0] = 'バナナ' 
msg[1] = 'りんご' 
msg[2] = 'みかん'
listbox '好きな食べ物を選んでください' 'あなたへの問い' msg
sprintf2 var "%d" result
messagebox var "result"
; result
;   -1: Cancel
;    0: バナナ
;    1: りんご
;    2: みかん
strdim msg 7
msg[0] = '晴れ' 
msg[1] = '曇り' 
msg[2] = '雨'
msg[3] = '風'
msg[4] = '雪'
msg[5] = '霧'
msg[6] = '分かりません'
; デフォルトで7番目の項目が選択される
listbox '今日の天気はどうですか?' 'あなたへの問い' msg 6
sprintf2 var "%d" result
messagebox var "result"

参照