2011年7月12日火曜日

オプションボタンを操作する

今回はオプションボタン編。但し、情報がなかった為、ほぼ 100% 勘で
やり、それらしく動いたので、多分合っているだろう!、という極めて
いい加減な姿勢で投稿してしまう。
  
先ず、下図のようなダイアログ「Dialog1」を用意する。
  
次に、二つのオプションボタンをグループ化する。Excel の場合は、
グループの枠の中にオプションボタンを配置すればそれでよかったが、
Calc はそれらしきものが見当たらない。色々と探し回った結果、多分
下記のようなやり方なのではないかと思われる。
  
「OptionButton1」のプロパティウィンドウを開き、「グループ名」の欄に
「Group1」と入力する。
  
同様に「OptionButton2」についても「グループ名」
に「Group1」と入力する。
  
肝心なのは、二つのオプションボタンのクループ名を同じにすること。
グループ名を同一にすることによって、二つのオプションボタンが連動
して動くことになるようである。
  
普通オプションボタンが複数ある場合は、いずれか一つをデフォルトで
「True」にする。そこで今回は、「OptionButton1」をデフォルトで「True」
に設定する。設定方法は、下図の通り、「OptionButton1」のプロパティ
ウィンドウの「状態」欄を「選択されています」に設定すればよい :
  
あとはコード。
今回は、「CommandButton」をクリックすると「OptionButton1」が True
になると同時に、「OptionButton2」が False になり、「CommandButton2」
をクリックすると、逆に「OptionButton2」が True になるようなコードに
した。サンプルコードは以下の通り :
  
Private mobjDialog1 As Object
  
Sub Main
       DialogLibraries.LoadLibrary("Standard")
       mobjDialog1 = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
       mobjDialog1.execute()
End Sub
  
Sub CommandButton1Click()
       Dim objOptionButton1 As Object
       objOptionButton1 = mobjDialog1.getControl("OptionButton1")
       objOptionButton1.State = True
End Sub
  
Sub CommandButton2Click()
       Dim objOptionButton2 As Object
       objOptionButton2 = mobjDialog1.getControl("OptionButton2")
       objOptionButton2.State = True
End Sub
  
「CommandButton1」をクリックした場合は下図の通り :
  
因みに、最初にフォームを開いた時も上のように、「OptionButton1」が
True になる。
  
「CommandButton2」をクリックした場合は、下図の通り :
  
以上のように、複数のオプションボタンを同一のグループにしておくと、オプションボタンの一つを True にすると、残りは自動的に False に
なるマクロを、簡単に書くことが可能となる。

0 件のコメント:

コメントを投稿