【エクセルマクロ】指定の値より大きいセルに色をつける

エクセルマクロ:指定の値より大きいセルに色をつけるアイキャッチ エクセルマクロで効率化する

エクセルマクロで、指定の値より大きいセルに色をつけるVBAコードをご紹介します。

このページのマクロコードは、コピペで使えます。
せひ、お試しください。

指定の値より大きいセルに色付け

以下のマクロを実行すると、指定の値より大きいセルに色をつけます。

Sub 特定の値より大きいセルに色をつける()

Dim Max_Score As Long
Dim Last_Row As Variant
Dim i As Long
Dim j As Long

    '指定値
    Max_Score = Range("F1")
    
    '最終行
    Last_Row = Cells(Rows.Count, 1).End(xlUp).Row
    
    '2行目から11行目までループ
    For i = 2 To Last_Row
        
        '指定値より大きいセルに色をつける
        For j = 2 To 3
            If Cells(i, j) > Max_Score Then

          '該当セルの背景色に青色をつける
                Cells(i, j).Interior.Color = 15773696
            End If
        Next j
    
    Next i

End Sub

 

マクロ実行後

セルF1に指定値を入力します。

B列・C列にて指定値より大きいセルに色をつけます。


 

指定の値より大きいセルに色付け(配列使用)

以下のマクロを実行すると、2次元配列を使って指定の値より大きいセルを塗りつぶします。

Sub 特定の値より大きいセルに色をつける()

Dim Max_Score As Long
Dim MyList As Variant
Dim i As Long
Dim j As Long
Dim GetAddress() As Variant
Dim Cnt As Long
Dim a As String
Dim b As String

   '指定値
   Max_Score = Range("F1")
    
   'B列とC列のデータを配列へ格納
   MyList = Range("B1", Range("C" & Rows.Count).End(xlUp)).Resize(, 2).Value
    
   '配列をループ
   For i = 2 To UBound(MyList)
    
       '配列をループ
       For j = 1 To 2
        
           '指定の値より大きい数字か判定
           If MyList(i, j) > Max_Score Then
            
               '指定の値より大きいセルのアドレスを取得
               ReDim Preserve GetAddress(Cnt)
               GetAddress(Cnt) = Cells(i, j + 1).Address
               Cnt = Cnt + 1
           End If

       Next j
   Next i
    
   '該当アドレスのセルの背景色を塗る
   For i = 0 To UBound(GetAddress)
       a = Split(GetAddress(i), "$")(1)
       b = Split(GetAddress(i), "$")(2)
       Range(a & b).Interior.Color = 65535
   Next i

End Sub

 

配列を使用した方法

B列・C列の値を2次元配列に格納し、指定値と比較をして色付けします。


 

【エクセルマクロ】 数値の大きい方に色付け:自動化の方法を解説するよ
...