前回のフォームにボタンを下図の通り追加した :
コードも前回のものにプロシージャを追加した。改造後のコードは下記
の通り :
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)
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 CommandButton1xClick()
Dim objComboBox1 As Object
Dim strValues(20) As String
Dim lngIndex As Long
objComboBox1 = mobjDialog1.getControl("ComboBox1")
For lngIndex = 0 To 20
strValues(lngIndex) = "Item" & Format(lngIndex, "00")
Next lngIndex
objComboBox1.addItems(strValues, 0)
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 SubSub CommandButton4Click()
Dim objComboBox1 As Object
objComboBox1 = mobjDialog1.getControl("ComboBox1")
Msgbox(objComboBox1.getItem(4))
End Sub
Sub CommandButton5Click()
Dim objComboBox1 As Object
objComboBox1 = mobjDialog1.getControl("ComboBox1")
objComboBox1.removeItems(0, 21)
End Sub
追加したコマンドボタンと対応する、それらにプロシージャは下記の通り :
CommandButton1x ⇔ CommandButton1xClick
CommandButton4 ⇔ CommandButton4Click
CommandButton5 ⇔ CommandButton5Click
の三つ。他のボタンとプロシージャについては、前回と全く変えていない。
「CommandButton1x」をクリックすると、「CommandButton1」をクリック
した場合と、結果は全く同じになる。但し、「CommandButton1x」ボタンの
場合は、addItems メソッドを使用している。addItem メソッドが値を一つ
ずつ追加していくのに対して、addItems メソッドは文字列の配列を一気
に追加できる、ようだ。書式は下記の通り :
ComboBox 変数 = Form 変数.getControl(ComboBox 名)
ComboBox 変数.addItems(ValueArray, Index)
ValueArray は追加したい値 (文字列) の配列、Index は追加したい行
のインデックス番号を指定する。
次に、「CommandButton4」ボタンはコンボボックスに追加された値の
うち、インデックス番号が 4 の行の値を取得するマクロである。これを
実現する為に、getItem メソッドを使用している。書式は下記の通り :
ComboBox 変数 = Form 変数.getControl(ComboBox 名)
文字列変数 = ComboBox 変数.getItem(Index)
Index には、取得したい行のインデックス番号を指定する。getItem
メソッドは戻り値として取得した値の文字列を返す。
{CommandButton4」ボタンをクリックした結果は下図の通り :
最後に「CommandButton5」ボタンについて。このボタンをクリックすると、
コンボボックス内の値全てが削除される。ここでは、removeItems メソッド
を使用している。書式は下記の通り :
ComboBox 変数 = Form 変数.getControl(ComboBox 名)
ComboBox 変数.removeItems(Index, Count)
Index には、削除したいデータの開始行のインデックス番号を指定する。
Count には、削除したい件数を指定する。この例では。全データを削除
しているが、例えば、サンプルコードの該当部分を
objComboBox1.removeItems(1, 19)
とすると、最初の行の「Item00」と最後の「Item20」は消えずに残ることに
なる。
0 件のコメント:
コメントを投稿