Vba: 列の最初の n 個の値を強調表示する方法
VBA で次の構文を使用すると、Excel で列の最初の N 個の値を強調表示できます。
SubHighlightTopN ()
Dim rng As Range
Dim EntireRange As Range
'specify range to use
Set EntireRange = Range(" A2:A11 ")
'highlight top 3 values in range
For Each rng In EntireRange
For i = 1 To 3
If rng.Value = WorksheetFunction.Large(EntireRange, i) Then
rng.Interior.Color = vbYellow
End If
Next
Next rng
End Sub
この特定のマクロは、 A2:A11の範囲内の最大 3 つの値を強調表示します。
別の数の上限値を強調表示するには、 For i = 1 To 3行を編集して別の上限値を設定します。
次の例は、この構文を実際に使用する方法を示しています。
例: VBA を使用して列の最初の N 値を強調表示する
Excel スプレッドシートの列 A に次の値があるとします。
次のマクロを作成して、範囲A2:A11の最初の 3 つの最大値を強調表示できます。
SubHighlightTopN ()
Dim rng As Range
Dim EntireRange As Range
'specify range to use
Set EntireRange = Range(" A2:A11 ")
'highlight top 3 values in range
For Each rng In EntireRange
For i = 1 To 3
If rng.Value = WorksheetFunction.Large(EntireRange, i) Then
rng.Interior.Color = vbYellow
End If
Next
Next rng
End Sub
このマクロを実行すると、次の出力が表示されます。
列 A の上位 3 つの値を含むセルが強調表示されていることに注目してください。
強調表示に使用する色や、強調表示する主な値の数も変更できることに注意してください。
たとえば、次のマクロを使用して、列 A の最初の 5 つの値を緑色で強調表示できます。
SubHighlightTopN ()
Dim rng As Range
Dim EntireRange As Range
'specify range to use
Set EntireRange = Range(" A2:A11 ")
'highlight top 5 values in range
For Each rng In EntireRange
For i = 1 To 5
If rng.Value = WorksheetFunction.Large(EntireRange, i) Then
rng.Interior.Color = vbGreen
End If
Next
Next rng
End Sub
このマクロを実行すると、次の出力が表示されます。
列 A の上位 5 つの値を含むセルが緑色で強調表示されていることに注目してください。
追加リソース
次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。
VBA: 条件付き書式をセルに適用する方法
VBA: 重複した値に条件付き書式を適用する方法
VBA: 列の値を検索する方法