HPの掲示板で、
チェックボックスのcheck/uncheckの状態を
プログラム的に設定することは可能でしょうか?
といった質問がありました。
checkBox要素のON・OFFを動的に切り替える場合は、getPressed属性のコールバックを使います。
・リボンXML
<?xml version="1.0" encoding="utf-8"?> <customUI onLoad="rbnChkSample_onLoad" xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <ribbon> <tabs> <tab id="tabSample" label="Sample Tab"> <group id="grpSample" label="Sample Group"> <button id="btnSample" label="Sample Button" imageMso="HappyFace" onAction="btnSample_onAction" /> <checkBox id="chkSample" label="Sample CheckBox" getPressed="chkSample_getPressed" onAction="chkSample_onAction" /> </group> </tab> </tabs> </ribbon> </customUI>
・標準モジュール
'標準モジュール Option Explicit Private myRibbon As Office.IRibbonUI Private flgChkSample As Boolean Public Sub rbnChkSample_onLoad(ribbon As IRibbonUI) Set myRibbon = ribbon flgChkSample = True 'checkBox要素の初期値 End Sub Public Sub btnSample_onAction(control As IRibbonControl) 'button要素クリック時に実行 'checkBox要素のON・OFFを切り替え flgChkSample = Not flgChkSample myRibbon.InvalidateControl "chkSample" 'checkBox要素再描画 'myribbon.Invalidate 'リボン全体再描画 End Sub Public Sub chkSample_getPressed(control As IRibbonControl, ByRef returnedVal) 'checkBox要素のON・OFFを設定 returnedVal = flgChkSample End Sub Public Sub chkSample_onAction(control As IRibbonControl, pressed As Boolean) 'checkBox要素クリック時に実行 flgChkSample = Not flgChkSample MsgBox "checkBox要素の現在のチェック状態は「" & pressed & "」です。", vbSystemModal End Sub
上記コードを設定したファイルを開くと「Sample Tab」の中にボタン(button要素、id属性:btnSample)とチェックボックス(checkBox要素、id属性:chkSample)が表示され、ボタンをクリックする度にチェックボックスのON・OFFが切り替わります。
ちなみに、チェックボックスのチェック状態については、onAction属性のコールバックの引数「pressed」で取得することが可能です。
この記事へのコメントはありません。