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

ユーザーフォームに配置したラベル(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コードに書けばすぐ利用できます。

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

ユーザーフォームでオリジナルフォーム作ろう
エクセルの作業時間を短縮して効率よく作業を可能にする「ユーザーフォーム」を使いこなすには、基本を押さえておきましょう。
1日400人ぐらいの方が見ていただいている意外と人気ページなんです。

文字を入力するのに絶対使うTextBox
ユーザーフォームにテキストボックスを使わないで済むのは、確認画面ぐらいかな?
テキストボックスとセルをリンクさせる様々な方法を組み合わせれば、作業時間はあっという間に短縮できます。

文字列だけじゃない!Labelもクリックできるので可能性大
ラベルといえばテキストボックスの説明として文字列で表示させるのが、基本の使い方ですがクリックするとプログラムを実行させることもできるのです。
工夫次第でできることは無限大に広がります。

どんなVBAコードをコマンドボタンに記述しますか?
ボタンをクリックすると記述したプログラムが作動して、繰り返し作業や手間がかかったことが一瞬で完了させることができます。
あんなこともこんなこともできちゃいますよ。


ご覧いただきありがとうございます。
ブログランキングに登録しています。
少しでもお役に立てれば幸いで、参考になったようでしたら応援よろしくお願いします。





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