ユーザーフォームに配置したラベル(Label)やコマンドボタン(CommandButton)の色を変えるには、RGBやColorIndexまたはプロパティで色指定することはできます。
色を固定するのではなく、ラベルやコマンドボタンを1回クリックするたびに「青色」➡「黄色」➡「赤色」と文字と文字色を変えたくなったことありませんか?
IfステートメントとRGBとキャプションを組み合わせるだけで簡単にできます。
If~Then、ElseIf~Then、Elseですぐできる
「もし青色だったら黄色、そうでなく黄色だったら赤色、赤色でなかったら青色に」ともし~だったらが2回連続でVBAコードを書いただけです。
Private Sub Label1_Click()
With Label1
If .ForeColor = RGB(0, 0, 255) Then
.ForeColor = RGB(255, 255, 0)
.Caption = “きいろ”
ElseIf .ForeColor = RGB(255, 255, 0) Then
.ForeColor = RGB(255, 0, 0)
.Caption = “あか”
Else
.ForeColor = RGB(0, 0, 255)
.Caption = “あお”
End If
End With
End Sub
- ラベル1がクリックされたら
- Withステートメント開始
- もし文字色が青色だったら
- 文字色を黄色にする
- 文字を「きいろ」にする
- そうではなく、もし文字色が黄色だったら
- 文字色を赤色にする
- もじを「あか」にする
- そうではなかったら
- 文字色を青色にする
- 文字を「あお」にする
- Ifステートメント終了
- Withステートメント終了
- マクロ記録終了
いかがですか?とても簡単ですが「クリックするたびに変化」を難しく考えず、シンプルにとらえるとできますので、実際に「参加」「不参加」「未定」などの表示で使っていて、見た目で分かるので重宝しています。
また、ラベルではなくコマンドボタンの文字を変更するならば、LabelをCommandButtonに代えるだけです。
さらに文字ではなく、背景色を変更するならばForeColorをBackClolorに代えるだけなので、いくらでも応用が利きます。
このように条件によって色を変更するにはRGBを使いましたが、エクセルで利用できる色は決まっているので、下記より色見本を見ながら好きな56色から選んでVBAコードに書けばすぐ利用できます。
スポンサーリンク