Office関連

[リボン・カスタマイズ]checkBox要素のチェック状態を動的に設定する。

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が切り替わります。

chkSample_getPressed_01

ちなみに、チェックボックスのチェック状態については、onAction属性のコールバックの引数「pressed」で取得することが可能です。

関連記事

アプリケーション起動時にクイック アクセス ツール バーにマクロ実行用ボタンを動的に追加するOutlookマクロ前のページ

PDFファイルにヘッダーとフッターを追加するVBAマクロ次のページ

関連記事

  1. Office関連

    Word 2013では簡単にウィンドウ ハンドルを取得できるようになりました。

    ※ この情報はOffice 2013 カスタマー プレビュー版を元にし…

  2. Excel

    ヘッドレス ChromeとSeleniumBasicでWebページ全体のスクリーンショットを撮る方法…

    先日、ヘッドレス ChromeでWebページ全体のスクリーンショットを…

  3. Excel

    ドラッグ&ドロップでExcelファイルをアドイン形式(xlam)に一括変換するVBScript

    複数のExcelファイルをアドイン形式(xlam)に変換する必要があっ…

  4. Office関連

    Google翻訳で文字列を翻訳するVBAマクロ(IE操作版)

    下記記事にあるように、ニューラルネット機械翻訳の導入によって、Goog…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP