> 数字が例えば、6から5に下がった所に
以下のパターンでいかがでしょう。
単に下がったらと、差がマイナス1だったらと、6(あるきまった値)に対してマイナス1だったらと、3パターンほど考えられましたのでそれぞれ記載してます。
利用時には不要な部分を削除してください。
また、
ColorIndexは以下のページを参考に
http://www.relief.jp/itnote/archives/000482.php
それぞれのプロパティの指定は以下のページを参考にしてください。
http://excel-ubara.com/excelvba1/EXCELVBA335.html
Sub Example()
Dim c As Range
Application.ScreenUpdating = False
'差は関係なく下がった時に線を引く
For Each c In Range(Cells(1, "E"), Cells(Cells(Rows.Count, "E").End(xlUp).Row - 1, "E"))
If c.Value > c.Offset(1, 0).Value Then
With Range(Cells(c.Row, "A"), Cells(c.Row, "E")).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.Weight = xlThin
End With
End If
Next
'数値に関係なく差が1下がった時に線を引く
For Each c In Range(Cells(1, "E"), Cells(Cells(Rows.Count, "E").End(xlUp).Row - 1, "E"))
If c.Offset(1, 0).Value = c.Value - 1 Then
With Range(Cells(c.Row, "A"), Cells(c.Row, "E")).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.Weight = xlThin
End With
End If
Next
'決まった数値の差があった時に線を引く6から-1になった時
For Each c In Range(Cells(1, "E"), Cells(Cells(Rows.Count, "E").End(xlUp).Row - 1, "E"))
If c.Value = 6 Then
If c.Offset(1, 0).Value = c.Value - 1 Then
With Range(Cells(c.Row, "A"), Cells(c.Row, "E")).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.Weight = xlThin
End With
End If
End If
Next
Application.ScreenUpdating = True
End Sub
こんにちは
Sub test()
Dim v As Variant
'-1 検査値以上の最小の値が検索されます。
'このとき検査範囲のデータは、降順に並べ替えておく必要があります
v = Application.Match(6, Range("E:E"), -1)
If IsError(v) Then
MsgBox "6以上の値が無いか、降順になっていません。"
Exit Sub
End If
With Range("A" & v).Resize(, 5).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
End Sub
とかで。