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

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

あわせて読みたい
VBAでユーザーフォームのラベルの文字色を条件に応じて変更する方法 基本的にはクリックをして何かプログラムを作動させることが少ない「ラベル」ですが、条件に応じてラベルの文字色が赤く目立たせたいと思ったことはありませんか? 例え...

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

あわせて読みたい
エクセルVBAのユーザーフォームを使って自作カレンダーを作る方法 私自身2017年12月まで使っていたエクセル2007には、標準機能として日付を入力するためのカレンダーコントロールがあり、日付入力が簡単でしたが、現在はなくなっていま...

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

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

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

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

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

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

あわせて読みたい
テキストボックス使い方や便利な活用法やワザ エクセルのオリジナル入力フォームが作ることができるユーザーフォーム。 そこでコマンドボタン・ラベルと並んで使用頻度が高いテキストボックスの基本的な使い方と、活...

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

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

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

あわせて読みたい
ラベル使い方や便利な活用法やワザ エクセルのオリジナル入力フォームが作ることができるユーザーフォーム。 そこでコマンドボタン・ラベルと並んで使用頻度が高いテキストボックスの基本的な使い方と、活...

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

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

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

あわせて読みたい
コマンドボタンの使い方や便利な活用法やワザ エクセルのオリジナル入力フォームが作ることができるユーザーフォーム。 そこでテキストボックス・ラベルと並んで使用頻度が高いコマンドボタンの基本的な使い方と、活...
波乗りアヒル
波乗りアヒル

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

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

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


Microsoft Officeランキング

ユーザーフォームを使えばこんなに便利に早く作業が終わりますよ
あわせて読みたい
エクセルVBAで住所録入力フォームを作る方法 数百人規模の中規模の住所録や顧客データをエクセルで管理している事業所って意外と多いですが、データを検索して修正するのってすごく面倒じゃないですか? 面倒だなあ...
あわせて読みたい
ユーザーフォームでオリジナル入力画面を作る エクセルのデータ入力・検索・修正作業ってとても面倒で時間と手間がかかりませんか? この作業を簡単に素早く終わらせたくないですか? エクセル使うなら今話題の時短...
とりっぷぼうる
エクセル関数とVBAで和暦西暦対応カレンダー作成 | とりっぷぼうる エクセル関数を基本として作成し、ユーザーフォームで日付選択ができるようにすることで複雑なマクロが分からなくても、自由にカスタマイズして自分のエクセルに組み込んで...
あわせて読みたい
Excel-VBAもくじ~エクセルの作業時間を半減させる方法 【コピペOK】このExcel-VBAページに掲載している内容・VBAコードが、少しでもお役に立てるのであればコピーして使っていただいて構いません。 たった1秒で完了!驚異の...
波乗りアヒル
波乗りアヒル

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

目次