条件に応じてラベルの色を変えるVBA(色見本付き)

userform ラベル
スポンサーリンク

ユーザーフォームのラベルの色をセルの値によって変えたいって思いませんか

セルの値が重複した時だけ赤色文字にして注意を促すように使えたら便利ですよね。

このように条件によってラベルの色を変えるとなると、プロパティでは固定化されるので対応できないので、VBAコードで対応させましょう。

ちなみに、ラベルの色を決めていて変える必要のない場合はプロパティで簡単に設定できますよ。

スポンサーリンク

VBAコードでラベルの色を変える

ここでは、ユーザーフォームに配置したコマンドボタンを押すことにより、ラベルの色を変える方法をお話ししていきます。

VBAコードを使ってラベルの色を変える方法は、RGBで色指定するか、colorIndex番号で指定するかの2種類あり、どちらを使っても同じです。

<span class="fz-12px">とりっぷぼうる</span>
とりっぷぼうる

主な色はこのページの最後に色見本をまとめましたので、活用してください。

ラベルの色を赤色に変える

数式も条件も何もない基本的な色変更なので、プロパティの設定と同じようになります。

ラベルを赤色にする

Private Sub CommandButton1_Click()
UserForm1.Label1.ForeColor = RGB(255,0,0)
End Sub

初期設定のラベルは黒色
初期設定のラベルは黒色

これでユーザーフォーム1に配置したラベル1の文字色(ForeColor)が赤色に(RGBを使って)コマンドボタンを押すと変わります。

RGBを使って赤色にラベル文字色変更
RGBを使って赤色にラベル文字色変更

条件によりラベルの色を変える

では次に、条件に応じてラベルの色を変える方法ですが、ここでは1位(セルE3)と2位(セルE4)の点数が同点の場合(If~Then)にラベルの色を赤色で表示して目立つようにします。

1位と2位が同点の時ラベルの色を赤色に変えるVBAコード

Private Sub CommandButton1_Click()
If Range(“E3”).Value = Range(“E4”).Value Then
UserForm1.Label1.ForeColor = RGB(255,0,0)
End If
End Sub

もし~だったらで対応できますが、メッセージで同時に表示すると使うスタッフには親切ですよね。

メッセージを追加したVBAコード

Private Sub CommandButton1_Click()
If Range(“E3”).Value = Range(“E4”).Value Then
MsgBox “1位と2位が同点です”
UserForm1.Label1.ForeColor = RGB(255,0,0)
End If
End Sub

2つの条件によりラベルの色を振り分けて変える

先ほどは2つのセルの値が同じ場合を例にしましたが、セルE3の値が80点以上の時にラベルの色を変えましょう。

ついでに、メッセージは「合格」にしてラベルの文字の色を青色にし、さらに(ElseIf)30点以下の場合「不合格」と表示してラベルの文字色を赤色にします。

○○点より大きい場合ラベルの文字色変更

Private Sub CommandButton1_Click()
If Cells(3, 5).Value >= 80 Then
MsgBox “合格”
UserForm1.Label1.ForeColor = RGB(0,0,255)
ElseIf Cells(3, 5).Value <= 30 Then
MsgBox “不合格”
UserForm1.Label1.ForeColor = RGB(255, 0, 0)
End If
End Sub

当然ながら、RangeをCellsに変えても問題ありません。

ElseIfで2つ目の条件を付けて色分けも可能で、この方が実用的ですよね。

この条件でC3~C12まで順番に繰り返し色変更処理をする、より実践的な方法はマスターしたほうがいいですよ。

判定評価が2つでしたが、通知表みたいに5段階評価したいとなると、If~Thenでもできないことは無いですが、VBAコードがすごく長くなってしまうので、スッキリさせる条件分岐するSelect Caseステートメントを使いましょう。

<span class="fz-12px">とりっぷぼうる</span>
とりっぷぼうる

ラベルの色は以下の色見本から自由に選んで使うことができますよ。

スポンサーリンク

色見本(ColorIndex一覧)

ColorIndex RGB 16進数 ColorIndex RGB 16進数
1 RGB(0,0,0) #000000 29 RGB(128,0,128) #800080
2 RGB(255,255,255) #ffffff 30 RGB(128,0,0) #800000
3 RGB(255,0,0) #ff0000 31 RGB(0,128,128) #008000
4 RGB(0,255,0) #00ff00 32 RGB(0,0,255) #0000ff
5 RGB(0,0,255) #0000ff 33 RGB(0,204,255) #00ccff
6 RGB(255,255,0) #ffff00 34 RGB(204,255,255) #ccffff
7 RGB(255,0,255) #ff00ff 35 RGB(204,255,204) #ccffcc
8 RGB(0,255,255) #00ffff 36 RGB(255,255,153) #ffff99
9 RGB(128,0,0) #800000 37 RGB(153,204,255) #99ccff
10 RGB(0,128,0) #008000 38 RGB(255,153,204) #ff99cc
11 RGB(0,0,128) #000080 39 RGB(204,153,255) #cc99ff
12 RGB(128,128,0) #808000 40 RGB(255,204,153) #ffcc99
13 RGB(128,0,128) #800080 41 RGB(51,102,255) #3366ff
14 RGB(0,128,128) #008080 42 RGB(51,204,204) #33cccc
15 RGB(192,192,192) #c0c0c0 43 RGB(153,204,0) #99cc00
16 RGB(128,128,128) #808080 44 RGB(255,204,0) #ffcc00
17 RGB(153,153,255) #9999ff 45 RGB(255,153,0) #ff9900
18 RGB(153,51,102) #993366 46 RGB(255,102,0) #ff6600
19 RGB(255,255,204) #ffffcc 47 RGB(102,102,153) #666699
20 RGB(204,255,255) #ccffff 48 RGB(150,150,150) #969696
21 RGB(102,0,102) #660000 49 RGB(0,51,102) #003366
22 RGB(255,128,128) #ff8080 50 RGB(51,153,102) #339966
23 RGB(0,102,204) #0066cc 51 RGB(0,51,0) #003300
24 RGB(204,204,255) #ccccff 52 RGB(51,51,0) #333300
25 RGB(0,0,128) #000080 53 RGB(153,51,0) #993300
26 RGB(255,0,255) #ff00ff 54 RGB(153,51,102) #993366
27 RGB(255,255,0) #ffff00 55 RGB(51,51,153) #333399
28 RGB(0,255,255) #00ffff 56 RGB(51,51,51) #333333

16進数はワードプレスプラグイン「TinyMCE Advanced」のテーブルに使用するコードから引用しています。

スポンサーリンク

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Microsoft Officeランキング

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

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