文献 10) を見つけることができ、これを頼りに色々と試した結果を記す。
先ず、下図の「Dialog1」を用意する :
今回のサンプルコードは下記の通り :
Private mobjDialog1 As Object
Sub Main
DialogLibraries.LoadLibrary("Standard")
mobjDialog1 = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
mobjDialog1.execute()
End Sub
Sub CommandButton1Click()
Dim objComboBox1 As Object
Dim lngIndex As Long
objComboBox1 = mobjDialog1.getControl("ComboBox1")
For lngIndex = 0 To 20
objComboBox1.addItem("Item" & Format(lngIndex, "00"), lngIndex)
Next lngIndex
End Sub
Sub CommandButton2Click()
Dim objComboBox1 As Object
objComboBox1 = mobjDialog1.getControl("ComboBox1")
objComboBox1.setDropDownLineCount(8)
End Sub
Sub CommandButton3Click()
Dim objComboBox1 As Object
objComboBox1 = mobjDialog1.getControl("ComboBox1")
Msgbox(objComboBox1.Text)
End Sub
CommandButton1 ⇔ CommandButton1Click
CommandButton2 ⇔ CommandButton2Click
CommandButton3 ⇔ CommandButton3Click
まず、フォームを開いて、「CommandButton1」をクリックすると、コンボ
ボックスに値が追加される。下図は、その値を表示しているところ :
コンボボックスに値を追加する方法は、リストボックスの場合と似ていて、
書式は下記の通り :
ComboBox 変数 = Form 変数.getControl(ComboBox 名)
ComboBox 変数.addItem(Value, Index)
addItem メソッドの Index 引数には、値を追加したい行のインデックス番号
を指定すれば良い。行のインデックス番号は、リストボックス同様、ゼロから
始まる整数。
上の図からもわかるように、ドリルダウンした時に表示される行数は 5 行
がデフォルトらしい。そこで、表示行数を 8 行にする為、「CommandButton2」
をクリックして、ドリルダウンしてみると、下図のように 8 行表示されるように
なる :
コンボボックスの表示する行数を指定するには、setDropDownLineCount
メソッドを使用する。書式は下記の通り :
ComboBox 変数 = Form 変数.getControl(ComboBox 名)
ComboBox 変数.setDropDownLineCount(Line)
setDropDownLineCount の 引数 Line に、表示したい行数を指定する。
ComboBox 変数.setDropDownLineCount(Line)
setDropDownLineCount の 引数 Line に、表示したい行数を指定する。
最後に、コンボボックスの中から選択した値を取得する方法を記す。
下図のように値を選択する :
この状態で「CommandButton3」をクリックすると、以下のメッセージ
ボックスが表示される :
選択した値を取得するには Text プロパティを用いる。書式は下記の通り :
ComboBox 変数 = Form 変数.getControl(ComboBox 名)
変数 = ComboBox 変数.Text
コンボボックスにデフォルトで表示する方法についても試してみたかったが、
変数 = ComboBox 変数.Text
コンボボックスにデフォルトで表示する方法についても試してみたかったが、
それらしきメソッドやプロパティがなく、断念した。ドキュメントが整っていない
のもあるが、やはりオブジェクトの構成がゴチャゴチャで、すっきりしない気
がする。LibreOffice はこのまま OpenOffice のオブジェクト構成を踏襲し
続けるのだろうか...
0 件のコメント:
コメントを投稿