今回は、セルの値に応じて、行に色を付ける。
というマクロを学び作りました。
そして、自分で選択した範囲内で、セル値に応じて行を色分けするというマクロです。
セルの値に応じて行に色をつけるには
↓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
コメント