Libre Office Basic マクロ
オプションボタン(ラジオボタン)の利用方法のサンプルです。
StarOffice Basicの資料を見ると、オプションボタンのグループ化について、ややこしい方法が
書かれているものがあります。現在のLibreOffice Basicではダイアログエディタでグループ化する
オプションボタンをグループボックス内に配置すればそれでグループ化され、どれか一つのボタンが
排他的に選択されます。このとき、
(オプションボタンオブジェクト).State に入る値の型はBooleanとなっています。ですから、現在のLibreOffice
では、オプションボタンはごく一般的な感覚で使えることがわかります。
OpenOfficeマクロプログラミング―「Writer」「Calc」「Base」…OOoをBasicで便利に! (I・O BOOKS)
以下のサンプルではダイアログとしてRadioBtnTestDlgを用意し、その上にオプションボタンとして
Option1, Option2, Option3の3個を配置し、そのほかに
TextField1を結果表示用に、実行開始のためにボタン(CommandButton1)を配置し、ボタンは実行時イベントとして
RadioBtnAction()を指定しています。
オプションボタンは3つをグループボックス内に入れています。
RadioBtnTest()を実行し、ボタンをクリックすると、その時に選択されていた
オプションボタンがテキストフィールドに表示されます。
オプションボタンが選択されているかどうかのチェックは、
if oOpt1.State=True then
のように行います。
オプションボタンマクロの入ったCalcドキュメントファイルはこちら
Dim oOpt1 as Object
Dim oOpt2 as Object
Dim oOpt3 as Object
Dim oTextField as Object
Sub RadioBtnTest()
Dlg = CreateUnoDialog(DialogLibraries.Standard.RadioBtnTestDlg)
oOpt1 = Dlg.getControl("Option1")
oOpt2 = Dlg.getControl("Option2")
oOpt3 = Dlg.getControl("Option3")
oTextField = Dlg.getControl("TextField1")
oOpt1.State=True
Dlg.execute() 'フォームを表示する
End Sub
Sub RadioBtnAction()
if oOpt1.State=True then
oTextField.Text = "Option1 Selected"
elseif oOpt2.State=True then
oTextField.Text = "Option2 Selected"
elseif oOpt3.State=True then
oTextField.Text = "Option3 Selected"
end if
End Sub
画像は、マクロ実行時のダイアログです。Option2が選択され、テキストフィールド内にその表示ができています。

Option Button Usage
Kom., 2013
