• ベストアンサー

線引きマクロ

宜しくお願いします。A列からE列まであり、E列に数字が記載されており、数字が例えば、6から5に下がった所に線で区切りたいのです。数字は900行ぐらいランダムに行が進むにつれ下がって行きます。宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1747/2623)
回答No.2

> 数字が例えば、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

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.1

こんにちは 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 とかで。

すると、全ての回答が全文表示されます。

関連するQ&A