リストボックスのどの項目を選択状態にするかをマクロから操作します。
まず、前回の記事を参考にリストボックスをフォームに配置し、値リストは「”明治”;”大正”;”昭和”;”平成”;”令和”;””」と設定してみてください。改行は、Shift+Enterで。
リストボックスの横にでもボタンを配置し、下記マクロを割り当ててください。
Sub ItemSelect
Dim formRealName As String
Dim listboxName As String
formRealName = "●●フォームの本名●●"
listboxName = "●●リストボックスの名前●●"
oDraw = ThisComponent.getDrawPage()
oForm = oDraw.getForms().getByName(formRealName)
oControl = oForm.getByName(listboxName)
oListBox = ThisComponent.getCurrentController().getControl(oControl)
oListBox.selectItem("昭和",true) ' ←リストの項目を選択状態にする基本形
msgbox "「昭和」を選択状態にしました。"
' ↓ 応用
Dim itemlist() As String
oForm = oDraw.getForms().getByName(formRealName)
itemlist() = oForm.getbyname(listboxName).StringItemList 'リストの項目すべてを配列で受け取る
For each itemstr in itemlist()
oListBox.selectItem(itemstr,true) 'リストの項目を選択状態にする
msgbox itemstr & " を選択状態にしました。"
Next itemstr
End Sub
どうですか? 興奮しませんか? 私は興奮してます。
これができなくて、数カ月頭を抱えていたから。
これで多分、既存レコードの修正用フォームを作ることができる。
なんか、Baseで何でもできる気がしてきたよ!
( LibreOffice 6.2.4.2 / Linux Mint Debian Edition3(LMDE3)”Cindy” )