エクセルマクロで、最大値の隣のセルを取得するVBAコードをご紹介します。
WorksheetFunctionのMax関数と、Match関数を使用します。
このページのマクロコードは、コピペで使えます。
ぜひ、お試しください。
最大値の隣のセルを取得(Max関数・Match関数)
以下のマクロを実行すると、最大値の隣のセルの値を取得します。
Sub 一番大きい数値の隣のセル取得()
Dim MatchVal As Long
'最大値を求める
Cells(2, 5) = Application.WorksheetFunction. _
Max(Range(Cells(2, 2), Cells(11, 2)))
'最大値のとなりの値を変数へ格納
MatchVal = Application.WorksheetFunction. _
Match(Range("E2"), Range("B1:B11"), 0)
'最大値のとなりの値を転記
Cells(1, 5) = Cells(MatchVal, 1)
End Sub
Max関数で求めた最大値をもとに、
Match関数で最大値の隣のセルの値を抽出します。
最大値の隣のセルを取得(ForNext)
以下のマクロを実行すると、ForNextを使用して最大値の隣のセルの値を取得します。
Sub 最大値の横のセル取得()
Dim i As Long
Dim j As Long
Dim a As String
Dim b As Long
'初期化
b = 0
'最大値を取得
For i = 2 To 11
If b < Cells(i, 2) Then
'B列の最大値を格納
b = Cells(i, 2)
'A列の値を格納
a = Cells(i, 1)
End If
Next i
'最大値を出力
Cells(2, 5) = b
'最大値のとなりの値を取得
Cells(1, 5) = a
End Sub
2行目~最終行までループして、B列の数値を比較します。
最大値を [セルE2] に出力し、最大値のとなりの値を [セルE1] に出力します。
この記事がお役に立ちますと幸いです。
【エクセルマクロ】指定値より大きいセルに色付け:使用例2選
...
「たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】」
「5時間かかる作業が3時間でできます」ではなく「1秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説
リンク