| 
    
     |  | ▼林 さん: こんにちは。
 
 振っておきながら忙しくて見られませんでした。
 
 ichinoseさんも仰られていますが、同じ理由で林さんのコードは解読してません。
 
 あとはB列のデータも何が入っているのかわからないです。
 (なので変数はVariantです。)
 
 だいたい、こんな感じの事をしたいのでしょうか?
 (もっとスマートに組めそうな気もしますが・・・私の能力限界)
 
 Option Explicit
 Option Base 1
 Sub test()
 Dim stdat() As Variant, cydat() As Variant, lndat As Long, i As Long
 With ThisWorkbook
 With .Sheets("Stress_Data")
 lndat = .Cells(.Rows.Count, 1).End(xlUp).Row
 stdat = .Range("A1", .Cells(lndat, 2)).Value
 End With
 ReDim cydat(5, 1)
 For i = 2 To UBound(stdat) - 1
 If stdat(i, 1) > stdat(i - 1, 1) And _
 stdat(i, 1) > stdat(i + 1, 1) Then
 ReDim Preserve cydat(5, UBound(cydat, 2) + 1)
 cydat(1, UBound(cydat, 2)) = UBound(cydat, 2) - 1
 cydat(2, UBound(cydat, 2)) = stdat(i, 1)
 cydat(4, UBound(cydat, 2)) = stdat(i, 2)
 ElseIf stdat(i, 1) < stdat(i - 1, 1) And _
 stdat(i, 1) < stdat(i + 1, 1) Then
 cydat(3, UBound(cydat, 2)) = stdat(i, 1)
 cydat(5, UBound(cydat, 2)) = stdat(i, 2)
 End If
 Next i
 cydat(3, UBound(cydat, 2)) = stdat(i, 1)
 cydat(5, UBound(cydat, 2)) = stdat(i, 2)
 With .Sheets("Cycle_vs_MaxSg")
 .Columns("A:E").ClearContents
 .Range("A1").Resize(UBound(cydat, 2), 5).Value = _
 Application.Transpose(cydat)
 .Range("A1:E1").Value = _
 Array("Cycle", "Max_Stress", "Min_Stress", "Max_ColB", "Min_ColB")
 End With
 End With
 End Sub
 
 >>自分で勉強すればいいって話なんですが
 >本来は、そうですし、ここはそういう方が対象のサイトですよね!!
 
 に、同感なのであえて説明はつけていません。
 少し見てみてくださ〜い^^
 
 これ、コードの解読や記述が御自分でも出来ないと
 実験データの信憑性を疑われた時に困ってしまうと思うので
 仮に出来たとしても、しっかり理解された方が良いですよ?
 
 |  |