ダイアログやテキストボックス、リストボックス等のGUI部品を制御するために、OpenOffice.org Basicでは、これらのGUI部品をコントロール・オブジェクトとして表します。

ダイアログ・コントロール (stardiv.Toolkit.UnoDialogControl)

OpenOffice.org Basicでダイアログを表示する例を次に示します。

Dim Private oDialog1 As Object

Sub Dialog1Show
  BasicLibraries.LoadLibrary("Tools")
  oDialog1 = LoadDialog("Standard", "Dialog1")
  oDialog1.Execute()
End Sub

ダイアログを終了する例を次に示します。

Sub Dialog1End
  oDialog1.endExecute()
End Sub

OKボタンをクリックしたときのイベントに Dialog1End を割り当てます。

コントロール・オブジェクトを取得するには、GetControlを使用します。

Dim oListBox1 As Object
oListBox1 = oDialog1.GetControl("ListBox1")

ダイアログ・コントロールのプロパティ一覧を次に示します。

ダイアログ・コントロールのプロパティ
名前 種類
Menubar Object(配列)
Title String
Types Object(配列)
ImplemnetationId Integer(配列)
TabControllers Object(配列)
Controls Object(配列)
StatusText String
ElementType Object
Identifiers Long(配列)
Context Object
Peer Object
Model stardiv.Toolkit.UnoControlDialogModel
View stardiv.Toolkit.UnoDialogControl
DesignMode Boolean
PosSize com.sun.star.awt.Rectangle
OutputSize com.sun.star.awt.Size
Visible Boolean
Enable Boolean
Graphics Object
Size com.sun.start.awt.Size
ImplementationName String
SupportedServiceNames String(配列)
AccessibleContext com.sun.start.comp.toolkit.AccessibleDropDownListBox
Delegator Object

番号フィールド

番号フィールドはテキストフィールドと似ていますが、数値だけが入力できるフィールドです。

番号フィールド・コントロールのプロパティ一覧を次に示します。

番号フィールド・コントロールのプロパティ
名前 種類
Value Double

番号フィールドに入力された数値は Value プロパティで参照することができます。

Dim oDialog As Object
Dim oNumericField As Object
Dim dPeriod As Double

BasicLibraries.LoadLibrary("Tools")
oDialog = LoadDialog("Standard", "Dialog1")
oDialog.Execute()

oNumericField = oDialog.GetControl("NumericField1")
dPeriod = oNumericField.Value

チェックボックス

チェックボックス・コントロールのプロパティ一覧を次に示します。

チェックボックス・コントロールのプロパティ
名前 種類
State Integer

チェックボックスが選択されているかどうかは State プロパティを参照することで判断できます。

State プロパティ
意味
0 選択されていない
1 選択されている

リクナビNEXT

ラジオボタン・コントロール (stardiv.Toolkit.UnoRadioButtonControl)

ラジオボタン・コントロール(オプションボタン)はチェックボックスに似ていますが、グループのうちひとつしか選択できません。あるラジオボタンを選択すると、その他のラジオボタンはすべて選択されない状態となります。

ラジオボタンが選択されているかどうかは、Stateプロパティで判断することができます。StateプロパティはBoolean型で、TrueまたはFalseのいずれかの値です。Stateプロパティの値がTrueの場合は、ラジオボタンが選択されている状態です。Stateプロパティの値がFalseの場合は、ラジオボタンが選択されていない状態です。

OpenOffice.org Basicでラジオボタンを使用する例を次に示します。

Dim oDialog As Object
Dim oOptionButton As Object

BasicLibraries.LoadLibrary("Tools")
oDialog = LoadDialog("Standard", "Dialog1")
oDialog.Execute()

oOptionButton = oDialog.GetControl("OptionButton1")
If oOptionButton.State = True Then
    ' ボタンが選択されているときの処理
Else
    ' ボタンが選択されていない時の処理
End If

リストボックス・コントロール (stardiv.Toolkit.UnoListBoxControl)

リストボックス・コントロールのプロパティ一覧を次に示します。

リストボックス・コントロールのプロパティ
名前 種類
Types Object(配列)
ImplemnetationId Integer
ItemCount Integer
Items String(配列)
SelectedItemPos Integer
SelectedItemsPos Integer(配列)
SelectedItem String
SelectedItems String(配列)
DropDownLineCount Integer
MultipleMode Boolean
MimimumSize com.sun.star.awt.Size
PreferredSize com.sun.star.awt.Size
Context stardiv.Toolkit.UnoDialogControl
Peer Object
Model stardiv.Toolkit.UnoControlListBoxControl
View stardiv.Toolkit.UnoListBoxControl
DesignMode Boolean
PosSize com.sun.star.awt.Rectangle
OutputSize com.sun.star.awt.Size
Visible Boolean
Enable Boolean
Graphics Object
Size com.sun.start.awt.Size
ImplementationName String
SupportedServiceNames String(配列)
AccessibleContext com.sun.start.comp.toolkit.AccessibleDropDownListBox
Delegator Object

単一選択リストボックスの場合、選択された項目の文字列はSelectedItemプロパティで参照することができます。選択された項目の位置(数値)はSelectedItemPosプロパティで参照することができます。

複数選択リストボックスの場合、選択された項目の文字列はSelectedItemsプロパティで参照することができます。選択された項目の位置(数値)はSelectedItemsPosプロパティで参照することができます。

ボタンがクリックされたらマクロを実行する

ダイアログ・コントロールにイベントを割り当てると、ボタンをクリックしたときなどにOpenOffice Basicのプロシージャを実行することができる。

ダイアログ・コントロールにイベントを割り当てる手順を次に示す。

  1. プロシージャを作成する。
  2. ダイアログ・コントロールのプロパティを表示させる。
  3. [イベント] タブをクリックする。

    イベントプロパティ

  4. 割り当てたいイベントの [...] ボタンをクリックする。
  5. [割り当てられたアクション] ダイアログボックスが表示されるので、[マクロ] ボタンをクリックする。

    割り当てられたアクション

  6. [マクロの選択] ダイアログボックスが表示されるので、OpenOffice Basicのプロシージャを指定する。

    マクロの選択

ダイアログ・コントロールのイベント一覧を次に示す。

ダイアログコントロールのイベント
イベント 説明
作動時 ダイアログ・コントロールが作動したときに発生するイベント。
コマンドボタンであれば、(マウスまたはキーボードにより)ボタンが押されたとき。
フォーカスを得た時 マウスクリックまたはタブキーが押されてフォーカスを得たときに発生するイベント。
フォーカスを失った時 マウスクリックまたはタブキーが押されてフォーカスを失ったときに発生するイベント。
キーを押した時 ダイアログ・コントロールにフォーカスがあるときに、何らかのキーが押されたら発生するイベント。
コマンドボタンの場合、スペースキー(ボタンを押す)だけでなくタブキー(フォーカスの移動)が押されてもイベントが発生するので注意。
キーを離した時 ダイアログ・コントロールにフォーカスがあるときに、何らかのキーが押されたらに発生するイベント。
マウスを中に入れた時 マウスカーソルをダイアログ・コントロール内に入れたときに発生するイベント。
マウスボタンを押した時 マウスボタンが押されたら発生するイベント。
マウスボタンを離した時 マウスボタンを離したら発生するイベント。
マウスを外に出した時 マウスカーソルをダイアログ・コントロール内から外に出したときに発生するイベント。