条件に応じてラベルの色を変えるVBA

テキストボックスコントロールプロパティラベル

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

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

このように条件によってラベルの色を変えるとなると、プロパティでは固定化されるので対応できないので、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一覧)

ColorIndexRGB16進数ColorIndexRGB16進数
1RGB(0,0,0)#00000029RGB(128,0,128)#800080
2RGB(255,255,255)#ffffff30RGB(128,0,0)#800000
3RGB(255,0,0)#ff000031RGB(0,128,128)#008000
4RGB(0,255,0)#00ff0032RGB(0,0,255)#0000ff
5RGB(0,0,255)#0000ff33RGB(0,204,255)#00ccff
6RGB(255,255,0)#ffff0034RGB(204,255,255)#ccffff
7RGB(255,0,255)#ff00ff35RGB(204,255,204)#ccffcc
8RGB(0,255,255)#00ffff36RGB(255,255,153)#ffff99
9RGB(128,0,0)#80000037RGB(153,204,255)#99ccff
10RGB(0,128,0)#00800038RGB(255,153,204)#ff99cc
11RGB(0,0,128)#00008039RGB(204,153,255)#cc99ff
12RGB(128,128,0)#80800040RGB(255,204,153)#ffcc99
13RGB(128,0,128)#80008041RGB(51,102,255)#3366ff
14RGB(0,128,128)#00808042RGB(51,204,204)#33cccc
15RGB(192,192,192)#c0c0c043RGB(153,204,0)#99cc00
16RGB(128,128,128)#80808044RGB(255,204,0)#ffcc00
17RGB(153,153,255)#9999ff45RGB(255,153,0)#ff9900
18RGB(153,51,102)#99336646RGB(255,102,0)#ff6600
19RGB(255,255,204)#ffffcc47RGB(102,102,153)#666699
20RGB(204,255,255)#ccffff48RGB(150,150,150)#969696
21RGB(102,0,102)#66000049RGB(0,51,102)#003366
22RGB(255,128,128)#ff808050RGB(51,153,102)#339966
23RGB(0,102,204)#0066cc51RGB(0,51,0)#003300
24RGB(204,204,255)#ccccff52RGB(51,51,0)#333300
25RGB(0,0,128)#00008053RGB(153,51,0)#993300
26RGB(255,0,255)#ff00ff54RGB(153,51,102)#993366
27RGB(255,255,0)#ffff0055RGB(51,51,153)#333399
28RGB(0,255,255)#00ffff56RGB(51,51,51)#333333

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

ラベル関連VBAコード
タイトルとURLをコピーしました