前回のフォームを下図の通りに改造した :
サンプルコードも、前回のモジュールに対してプロシージャを追加した :
Private mobjDialog1 As Object
Sub Main
DialogLibraries.LoadLibrary("Standard")
mobjDialog1 = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
mobjDialog1.execute()
End Sub
Sub CommandButton1Click()
Dim objListBox1 As Object
Dim lngIndex As Long
objListBox1 = mobjDialog1.getControl("ListBox1")
For lngIndex = 0 To 10
objListBox1.addItem("Item" & Format(lngIndex, "00"), lngIndex)
Next lngIndex
End Sub
Sub CommandButton1xClick()
Dim objListBox1 As Object
Dim strValues(10) As String
Dim lngIndex As Long
objListBox1 = mobjDialog1.getControl("ListBox1")
For lngIndex = 0 To 10
strValues(lngIndex) = "Item" & Format(lngIndex, "00")
Next lngIndex
objListBox1.addItems(strValues, 0)
End Sub
Sub CommandButton2Click()
Dim objListBox1 As Object
objListBox1 = mobjDialog1.getControl("ListBox1")
Msgbox(objListBox1.SelectedItem)
End Sub
Sub CommandButton2xClick()
Dim objListBox1 As Object
Dim strValues() As String
Dim strMessage As String
Dim lngUBound As Long
Dim lngIndex As Long
objListBox1 = mobjDialog1.getControl("ListBox1")
strValues = objListBox1.SelectedItems
lngUBound = UBound(strValues)
For lngIndex = 0 To lngUBound
strMessage = strMessage & strValues(lngIndex) & Chr$(13)
Next lngIndex
Msgbox(strMessage)
End Sub
Sub CommandButton3Click()
Dim objListBox1 As Object
objListBox1 = mobjDialog1.getControl("ListBox1")
objListBox1.removeItems(0, 11)
End Sub
追加したコマンドボタンとそれぞれに対応するプロシージャは下記の通り :
追加したコマンドボタンとそれぞれに対応するプロシージャは下記の通り :
CommandButton1x ⇔ CommandButton1xClick
CommandButton2x ⇔ CommandButton2xClick
CommandButton3 ⇔ CommandButton3Click
の三つ。他のプロシージャは、前回と全く変えていない。
「CommandButton1x」をクリックすると、「CommandButton1」をクリック
「CommandButton1x」をクリックすると、「CommandButton1」をクリック
した場合と、結果は全く同じになる。但し、「CommandButton1x」ボタン
場合は、addItems メソッドを使用して、文字列の配列を一気に追加することができる、ようだ。書式は下記の通り :
ListBox 変数 = Form 変数.getControl(ListBox 名)
ListBox 変数.addItems(ValueArray, Index)
複数選択した行の値を取得するには、SelectedItems プロパティを用いる。
ListBox 変数 = Form 変数.getControl(ListBox 名)
ListBox 変数.addItems(ValueArray, Index)
ValueArray は追加したい値 (文字列) の配列、Index は追加したい行
のインデックス番号を指定する。
次に、「ListBox1」中の値から複数の行を選択し、それらの値を取得する
方法について述べる。これを可能にする為に、「ListBox1」の「プロパティー」
ウィンドウから「複数選択」プロパティを「はい」に変更する必要がある。
この設定を行うと、下図のように複数行が選択可能となる :
この状態で「CommandButton2x」ボタンをクリックすると下図のメッセージ
ボックスが表示される :
書式は下記の通り :
ListBox 変数 = Form 変数.getControl(ListBox 名)
文字列配列 = ListBox 変数.SelectedItems
文字列配列 = ListBox 変数.SelectedItems
最後に、「ListBox1」内の全ての値を削除する方法について。
リストボックスの値を削除するには、removeItems メソッドを使用する。
書式は下記の通り :
ListBox 変数 = Form 変数.getControl(ListBox 名)
ListBox 変数.removeItems(Index, Count)
Index には、削除したいデータの開始行のインデックス番号を指定する。
ListBox 変数.removeItems(Index, Count)
Index には、削除したいデータの開始行のインデックス番号を指定する。
Count には、削除したい件数を指定する。この例では。全データを削除
しているが、例えば、サンプルコードの該当部分を
objListBox1.removeItems(1, 9)
とすると、最初の行の「Item00」と最後の「Item10」は消えずに残る。
0 件のコメント:
コメントを投稿