ユーザーフォームのラベルをクリックするたびに色や文字を変える

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コードに書けばすぐ利用できます。

色と条件といえばカレンダー作成で日曜日・土曜日・祝日ならば色を変えたいなんて事も、できるようになるので、アレンジして活用できるようになりますよ。

スポンサーリンク

ユーザーフォームでオリジナルフォーム作ろう

エクセルの作業時間を短縮して効率よく作業を可能にする「ユーザーフォーム」を使いこなすには、基本を押さえておきましょう。

1日400人ぐらいの方が見ていただいている意外と人気ページなんです。

文字を入力するのに絶対使うTextBox

ユーザーフォームにテキストボックスを使わないで済むのは、確認画面ぐらいかな?

テキストボックスとセルをリンクさせる様々な方法を組み合わせれば、作業時間はあっという間に短縮できます。

文字列だけじゃない!Labelもクリックできるので可能性大

ラベルといえばテキストボックスの説明として文字列で表示させるのが、基本の使い方ですがクリックするとプログラムを実行させることもできるのです。

工夫次第でできることは無限大に広がります。

どんなVBAコードをコマンドボタンに記述しますか?

ボタンをクリックすると記述したプログラムが作動して、繰り返し作業や手間がかかったことが一瞬で完了させることができます。

あんなこともこんなこともできちゃいますよ。

波乗りアヒル
波乗りアヒル

ご覧いただきありがとうございます。

ブログランキングに登録しています。

少しでもお役に立てれば幸いで、参考になったようでしたら応援よろしくお願いします。


Microsoft Officeランキング

ユーザーフォームを使えばこんなに便利に早く作業が終わりますよ
波乗りアヒル
波乗りアヒル

エクセルの勉強お疲れ様です。ちょっとひと休みしませんか?