#407 選択されたトグルボタンを強調表示するには? フォーム、VBA

トグルボタンをクリックしてそのボタンを選択状態にすると、ボタン全体がくぼみ状態になって、現在選択されているボタンが識別できるようになっています。ここでは、さらにその識別をしやくするため、選択されたトグルボタンの標題を赤色+太字で強調表示させる方法を紹介します。

まず、サンプルとして次のような簡単なフォームを作ります。このフォームは、"フレーム0"という名前のオプショングループと、その中に配置された4つのトグルボタンから構成されています。
サンプルフォームのデザイン

続いて、次のようなコードをそのフォームのモジュールに記述します。

Private Sub Form_Load()
'フォーム読み込み時

  'オプショングループの"既定値"のトグルボタンを強調表示
  EmphasizeToggle Me!フレーム0

End Sub

Private Sub フレーム0_AfterUpdate()
'オプショングループの更新後処理

  EmphasizeToggle Me!フレーム0

End Sub

Private Sub EmphasizeToggle(Opg As OptionGroup)
'オプショングループ内で選択されたトグルボタンを強調表示する

  Dim ctl As Control

  'オプショングループ内のコントロールを列挙する
  For Each ctl In Opg.Controls
    With ctl
      If .ControlType = acToggleButton Then
        'オプショングループ内にはラベルも含まれるので除外
        If Opg.Value = .OptionValue Then
          '選択されたトグルボタンなら赤の太字
          .ForeColor = vbRed
          .FontBold = True
        Else
          '非選択のトグルボタンは黒の通常太さ
          .ForeColor = vbBlack
          .FontBold = False
        End If
      End If
    End With
  Next ctl

End Sub

  • 「EmphasizeToggle」というプロシージャがトグルボタンの強調表示を行うメインのプロシージャです。引数にオプショングループコントロールを指定することによって、そのコントロールの子となっているすべてのコントロールをループで列挙し、選択されているトグルボタンの書式を変更します。
  • オプショングループの選択肢が切り替わるたびに書式を変更しなければいけませんので、このプロシージャをオプショングループの更新後処理イベントプロシージャ内から呼び出します。
  • さらに、オプショングループに"既定値"が設定されている場合、フォームを開く時点でそのトグルボタンの書式を変更する必要がありますので、フォームの読み込み時イベントからもこのプロシージャを呼び出す必要があります。

実行結果:
実行結果
実行結果
| Index | Prev | Next |

この情報は参考になりましたか?、問題は解決しましたか?、もしまだなら......
T'sWareのワンポイトテクニカルアドバイスをご利用ください。3000円/件〜でご支援します。
スタンドアロンからSQL Server対応まで、オーダーメイドのシステムを短納期・安価でお届けします
 

Copyright © T'sWare All rights reserved