Sub test3()
Dim i As Long
Dim j As Long
Dim Tmax_R As Long '残業時間の一番多いセルの行
Dim Tmax_C As Long '残業時間の一番多いセルの列
Range("K4:M4").ClearContents ’入力部分を空白状態にする。
Tmax_R = 6 '初期値6(行目)に設定する。
Tmax_C = 1 '初期値1(1月)に設定する。
For j = 1 To 6
For i = 6 To 33
If Range("C" & i).Offset(0, j - 1).Value > Range("C" & Tmax_R).Offset(0, j - 1).Value Then
Tmax_R = i
Tmax_C = j
End If
Next
Next
Range("K4").Value = Range("B" & Tmax_R).Value
Range("L4").Value = Range("C5").Offset(0, Tmax_C - 1).Value
Range("M4").Value = Range("C" & Tmax_R).Offset(0, Tmax_C - 1).Value
End Sub
HYATOさんの投稿
(投稿ID: 5284)
わかりにくいコードですが、一応、動きました (^^)
小川 慶一さんのコメント
(コメントID: 7496)
投稿ありがとうございます (^^
offset使われたのですね。
それも良いかと。
発展編1で学ぶ worksheetfunction.max と worksheetfunction.min を使うなんていうのもおもしろそうです。
これにより、最大値、最小値は求まります。それから全セルを調査して、最小値or最大値と一致する値のセルを見つけたら、その セルの .Row プロパティ、 .Column プロパティを調べます。