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

このマクロを実行すると、次の出力が表示されます。

VBAは列の最初のN個の値を強調表示します

列 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: 列の値を検索する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です