こういうの考えてたんじゃね?知らんけど
でも>>315に関して「一回目は絶対最大値なんです。正負はなんの意味もない」ってのは意味不明

Private Sub Worksheet_Change(ByVal Target As Range)
  If Intersect(Target, Range("B5")) Is Nothing Then
    Exit Sub
  Else
    Range("C5") = WorksheetFunction.max(Range("B5", "C5"))
  End If
End Sub