PU-METALのブログ

日銀にはウンザリなので外貨専になりました

1時間足から日中夜間の4本値を作る

最近岡三RSS使い出してるんだけど、あの日足は始値終値は判っても高値安値が判らない。これからも使うこと有るだろうから

こんなの

f:id:kohnodechu:20180105150233p:plain

 

プロシージャ

Sub 昼夜() '昼夜別4本値
Dim Rp As Range 'rpは日付
Dim Rq As Range
Dim Hi As Long, Hj As Long, Tk As Long, Ys As Long
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For Each Rp In Selection
With Rp
If (.Offset(, 1).Value = 900 Or .Offset(, 1).Value = 845) And .Offset(-1, 1).Value < 800 Then
Set Rq = Range("h" & Range("h1048576").End(xlUp).Row + 1)
Rq.Value = Hi
Rq.Offset(, 1).Value = "夜間"
Rq.Offset(, 2).Value = Hj
Rq.Offset(, 3).Value = Tk
Rq.Offset(, 4).Value = Ys
Rq.Offset(, 5).Value = .Offset(-1, 5).Value
Hj = .Offset(, 2).Value
Tk = .Offset(, 3).Value
Ys = .Offset(, 4).Value
ElseIf .Value <> .Offset(-1).Value Then
Set Rq = Range("h" & Range("h1048576").End(xlUp).Row + 1)
Hi = .Offset(-1).Value
Rq.Value = Hi
Rq.Offset(, 1).Value = "日中"
Rq.Offset(, 2).Value = Hj
Rq.Offset(, 3).Value = Tk
Rq.Offset(, 4).Value = Ys
Rq.Offset(, 5).Value = .Offset(-1, 5).Value
Hj = .Offset(, 2).Value
Tk = .Offset(, 3).Value
Ys = .Offset(, 4).Value
ElseIf .Offset(, 3).Value > Tk Then
Tk = .Offset(, 3).Value
ElseIf .Offset(, 4).Value < Ys Then
Ys = .Offset(, 4).Value
End If
End With
Next
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub