スポンサーリンク

ラベルやボタンをクリックするたびに色や文字を変える

exce-vba作成事例
スポンサーリンク

ユーザーフォームに配置したラベル(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

VBA解説
  1. ラベル1がクリックされたら
  2. Withステートメント開始
  3. もし文字色が青色だったら
  4. 文字色を黄色にする
  5. 文字を「きいろ」にする
  6. そうではなく、もし文字色が黄色だったら
  7. 文字色を赤色にする
  8. もじを「あか」にする
  9. そうではなかったら
  10. 文字色を青色にする
  11. 文字を「あお」にする
  12. Ifステートメント終了
  13. Withステートメント終了
  14. マクロ記録終了

いかがですか?とても簡単ですが「クリックするたびに変化」を難しく考えず、シンプルにとらえるとできますので、実際に「参加」「不参加」「未定」などの表示で使っていて、見た目で分かるので重宝しています。

また、ラベルではなくコマンドボタンの文字を変更するならば、LabelをCommandButtonに代えるだけです。

さらに文字ではなく、背景色を変更するならばForeColorをBackClolorに代えるだけなので、いくらでも応用が利きます。

このように条件によって色を変更するにはRGBを使いましたが、エクセルで利用できる色は決まっているので、下記より色見本を見ながら好きな56色から選んでVBAコードに書けばすぐ利用できます。

スポンサーリンク
作成事例
スポンサーリンク
参考になりましたらシェア宜しくお願い致します

山頂テラスデッキからの三段紅葉(2019年11月)

フリーパスって助成金つぎ込んでいいの?

コロナ禍のGo To トラベル以外にも助成金だらけでうらやましいね。

安くなったフリーパスで遊びに行きたいけど、給与も減って余裕ないよね。

Excel VBA