発生しません。
例えば、オプションボタンの強調表示などを行なっている場合では、[On⇒OFF]変化に対しても処理が
必要となりますが、「どのボタンがOFFになったのか」のイベント通知がありませんので、自分で、直前の
状態と比較して対象ボタンを探す必要があります。
上記の処理を行なう関数を作りました。
OptionButtonGetOffChange 関数 ( 2009/10/8 Ver 1.1 )
http://blog.livedoor.jp/addinbox/archives/51250649.html
コード: 全て選択
Private oOptGrp(1 to 4) As Object
Dim vntOffCtrl As Variant
'~~ オブジェクト配列の設定後 ~~
For i = 1 to 4
oOptGrp(i) = oDialog.getControl("optBtn" & i)
Next i
vntOffCtrl = OptionButtonGetOffChange(oOptGrp)
'~~ Change イベント ~~
Private Sub OptItemListener_itemStateChanged(oEvent As com.sun.star.awt.ItemEvent)
Dim vntOffCtrl As Variant
oEvent.Source.Model.FontWeight = com.sun.star.awt.FontWeight.BOLD
vntOffCtrl = OptionButtonGetOffChange(oOptGrp)
If Not IsNull(vntOffCtrl) Then
vntOffCtrl.Model.FontWeight = com.sun.star.awt.FontWeight.NORMAL
End If
End Sub
'~~ Index 指定の場合 ~~
vntOffCtrl = OptionButtonGetOffChange(oOptGrp, True)
If (vntOffCtrl <> -1) Then
oOptGrp(vntOffCtrl).Model.FontWeight = com.sun.star.awt.FontWeight.NORMAL
End If
'~~ マクロで ON 設定 ~~
oOptGrp(1).Model.State = 1 '(ON)
oOptGrp(1).Model.FontWeight = com.sun.star.awt.FontWeight.BOLD
vntOffCtrl = OptionButtonGetOffChange(oOptGrp)
If Not IsNull(vntOffCtrl) Then
vntOffCtrl.Model.FontWeight = com.sun.star.awt.FontWeight.NORMAL
End If
'~~ マクロで OFF 設定 ~~
oOptGrp(1).Model.State = 0 '(OFF)
oOptGrp(1).Model.FontWeight = com.sun.star.awt.FontWeight.NORMAL
vntOffCtrl = OptionButtonGetOffChange(oOptGrp)
AddinBox/VBAユーザーの為のOpenOffice.org 備忘録 『ユーザー定義関数の一覧』
http://blog.livedoor.jp/addinbox/archives/51249421.html