#650 | コマンドボタンの色を動的に変える際の設定項目 | フォーム、VBA | ||||||||||||||||||||||||||||||||||||
フォームで使う「コマンドボタン」コントロールの「色」に関しては、いつかの設定項目(プロパティ)があります。主には「フォントの色(前景色)」、「背景の色」、「境界線の色」の3つです。 これらはフォームを開いた直後など、ボタンに対して何もしていないときの色を設定するものです。 一方、ボタンに対して何らかの操作をした際の、コマンドボタン特有の色として、次のようなものがあります。
よって、プロパティシートを見ると分かると思いますが、コマンドボタンの色については合計で7つのプロパティがあることになります。 それらの設定をVBAで動的に変えたいようなときのために、VBAの英語表記でのプロパティ名を整理すると次のようになります。
その実際のプログラム例として次のようなフォームを作ってみました。 [色を変えるボタン1]と[色を変えるボタン2]のクリック時イベントプロシージャで上記の各プロパティ値を設定変更します。設定変更の対象となるコマンドボタンは[色を変えられる側のボタン]です。それぞれコントロールの名前は「コマンド1」、「コマンド2」、「コマンド0」となっています。 イベントプロシージャの記述: Private Sub コマンド1_Click() '[色を変えるボタン1]ボタンクリック時 Dim lngGradient As Long With Me!コマンド0 lngGradient = .Gradient .ForeColor = RGB(237, 28, 36) .HoverForeColor = RGB(192, 80, 77) .PressedForeColor = RGB(255, 255, 255) .BackColor = RGB(119, 192, 212) .HoverColor = RGB(252, 230, 212) .PressedColor = RGB(181, 203, 136) .BorderColor = RGB(255, 194, 14) .Gradient = lngGradient End With End Sub Private Sub コマンド2_Click() '[色を変えるボタン2]ボタンクリック時 Dim lngGradient As Long With Me!コマンド0 lngGradient = .Gradient .ForeColor = RGB(0, 0, 0) .HoverForeColor = RGB(255, 255, 255) .PressedForeColor = RGB(236, 236, 236) .BackColor = RGB(167, 218, 78) .HoverColor = RGB(34, 177, 76) .PressedColor = RGB(117, 140, 72) .BorderColor = RGB(237, 28, 36) .Gradient = lngGradient End With End Sub 【注意点】
実行結果:
■デフォルトの状態
■[色を変えるボタン1]クリック後
■[色を変えるボタン2]クリック後
|
||||||||||||||||||||||||||||||||||||||
|
Copyright © T'sWare All rights reserved |