エクセルマクロで、最大値の隣のセルを取得する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 Buf As Long
Buf = 0
'最大値を取得
For i = 2 To 11
If Buf < Cells(i, 2) Then
Buf = Cells(i, 2)
End If
Next i
Cells(2, 5) = Buf
'最大値のとなりの値を取得
For i = 2 To 11
If Cells(i, 2) = Cells(2, 5) Then
Cells(1, 5) = Cells(i, 1)
End If
Next i
End Sub
マクロ実行後
B列をループして全ての数値を比較し、最大値を取得します。
その後もう一度B列をループし、最大値のとなりのセルを値を取得します。
ご覧いただき、ありがとうございます!

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