|
▼トキノハジメ さん:
サンプルのケースを
1行目から5行目に置いておいて
A B C
1 6 5 4
2 3 4 2
3 6 7 8
4 6 5 6
5 8 8 3
こう考えてみました。
Sub Try1()
Dim maxVal As Long, maxCol As Long
Dim i As Long, j As Long
For i = 1 To 5
maxVal = Cells(i, 1)'初めは1列目の値を
maxCol = 1 '最大値とし
For j = 2 To 3 '2,3列目の値をこれと比較
If maxVal < Cells(i, j) Then'これまでの最大値より
maxVal = Cells(i, j) '大きかったら、この値を最大値に
maxCol = j 'かつ、最大値の列番号を更新
ElseIf maxVal = Cells(i, j).Value Then'値が最大値と同じとき
maxCol = maxCol + j - (j < 3) '列番号を3以上にする
End If
Next
Cells(i, 4).Value = Choose(maxCol, _
"×", "〇", "◎", "△", "△")'maxColの値により記号を返す
Next
End Sub
結果
A B C D
1 6 5 4 ×
2 3 4 2 〇
3 6 7 8 ◎
4 6 5 6 △
5 8 8 3 △
|
|