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が選択され、テキストフィールド内にその表示ができています。
Kom., 2013