Excel VBAでLARGE関数を使って○番目に大きい値を取得する

Excel VBAでワークシート関数の「LARGE」を使って○番目に大きい値を取得する記録です。

下図はExcel2016です。

VBAでlarge関数

 

< スポンサーリンク >

 

書き方

WorksheetFunction.Large(Arg1, Arg2)

1組のデータの中で○番目に大きなデータを返します。この関数を利用すると、相対的な順位に基づいて、データの中から特定の値を選択することができます。

Arg1=必須。範囲。抽出の対象となるデータが入力されているセル範囲または配列を指定します。
Arg2=必須。順位。抽出する値の大きい方から数えた順位を数値で指定します。

 

B1~B6の中で2番目に大きいデータをメッセージで表示します。

Sub test()
    MsgBox WorksheetFunction.Large(ActiveSheet.Range("B1", "B6"), 2)
End Sub

VBAでlarge関数

VBAでlarge関数

  

B~Dの各列の2~6行目の中で3番目に大きいデータを7行目に入力します。

Sub test()
    Dim ws As Worksheet
    Dim i As Long

    '変数にアクティブシートをセット
    Set ws = ActiveSheet

    With ws
        'A7に項目名を入力
        .Range("A7").Value = "3番目に大きい"

        '2~6行目の中で3番目に大きいデータを7行目に入力
        For i = 2 To 4
            .Cells(7, i).Value = WorksheetFunction.Large(.Range(.Cells(2, i), .Cells(6, i)), 3)
        Next i
    End With
End Sub

VBAでlarge関数

VBAでlarge関数

 

VBAではなく、ワークシートのセルに書き込む場合はこちら
Excel データの中の○番目に大きい値を取得する-LARGE関数

 

< スポンサーリンク >



サブコンテンツ

このページの先頭へ