本ページはプロモーションが含まれています。

VBA行に色をつけるには?セルの値に応じて選択範囲内で背景色を変える

スポンサーリンク

今回は、セルの値に応じて、行に色を付ける。

というマクロを学び作りました。

そして、自分で選択した範囲内で、セル値に応じて行を色分けするというマクロです。

スポンサーリンク

セルの値に応じて行に色をつけるには

↓0より大きい値の時は、そのセルのある行を選択範囲内で塗りつぶします。

 

Sub gyoiro()

Dim i As Long
i = Selection.Item(1).Row
Dim t As Long
t = Selection.Item(1).Column
Dim r As Long
r = Selection(Selection.Count).Row
Dim c As Long
c = Selection(Selection.Count).Column

For i = i To r

If Cells(i, 7).Value > 0 Then
Range(Cells(i, t), Cells(i, c)).Interior.Color = rgbGray
End If
Next

End Sub

 

↑今回は、7列目(G列)のセルの値が0よりも大きい場合、RGBでグレーを指定しています。

Selection.Item(1) は、選択範囲の最左上のセルを取得してくれます。

Selection(Selection.Count) は、選択範囲の終端セルです。

 

セルの色の取得と指定

 

Sub iro()
MsgBox Selection.Interior.Color
End Sub

 

↑ 1つだけ、色のついたセルを選んで、このプロシージャを実行すると、メッセージボックスで色を返してくれます。

コピペがしたい時は、イミディエイトウィンドウを Ctrl + G で開いて、

 

?Selection.Interior.Color

 

↑をコピペして、エンター押すと色の番号が次の行に出てくれますので、それをコピペすると使えます。(1つだけ色のついたセルを選んでおいてエンターです)

 

色の指定は、インデックス番号で指定する方法や、RGBで指定する方法、組み込み定数で指定する方法があります。

今回は、.Interior.Color でRGB指定していますが、Excelで設定されているインデックス番号で指定する時は、.Interior.ColorIndex = 1

というように、Indexを付け加える必要があります。

ちなみに、黒は、インデックス番号1です。
.Interior.Color での指定は、0 です。
.Interior.ColorIndex で0を指定すると、塗りつぶしなしになります。

 

Sub iro()
MsgBox Selection.Interior.ColorIndex
End Sub

 

↑因みに黒いセルを選んでこちらを実行すると、1がメッセージで現れます。

vba 色 指定 などキーワードで検索すると色々出てきます。

 

今回も、ネット検索や、↓ こちらの大事典でいろいろ学ばせて頂きました。

この本を買うと高いのですが、kindleの読み放題だと、1ヶ月980円(2023年3月時点)で読み放題なのでお得です♪

先人の知恵に感謝して終わらせていただきます。
m(_ _)m

コメント

タイトルとURLをコピーしました