• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ある一定時間の最高値と最小値を取りたい)

一定時間内の最高値と最小値を取得する方法

このQ&Aのポイント
  • 株価などの数値が変動するデータについて、特定の時間帯の最高値と最小値を取得する方法が知りたいです。
  • 関数やVBAを使用しても循環参照やマクロの反応がうまくいかず、解決方法が分かりません。
  • 値を一つずつ新しいセルに入力して集計する方法も考えましたが、負荷が高く実現不可能です。どなたかご教示いただけないでしょうか。

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

  • ベストアンサー
  • muushuke
  • ベストアンサー率39% (151/387)
回答No.3

VBAの勉強を始めて3日目の者です。 以下のコードをsheet1のところに記述すると、とりあえずできると思います。。。 A1には株価 B1に最高値 C1に最安値を表示させます Private Sub Worksheet_Change(ByVal Target As Range) Dim s As String If Target.Cells.Count = 1 Then s = Target.FormulaLocal On Error Resume Next Application.EnableEvents = False If Range("a1") > Range("b1") Then Range("b1") = Range("a1") End If If Range("c1") = "" Then Range("c1") = Range("a1") End If If Range("a1") < Range("c1") Then Range("c1") = Range("a1") End If Application.EnableEvents = True On Error GoTo 0 End If End Sub 参考になりますでしょうか。。。

gyogyo
質問者

お礼

昨日は出張にてお礼が遅れまして申し訳ございません。早速試させていただきました。 しかし,結果は残念ながら・・・Xでした。 A1に手入力で数字を入力すればprivate関数の worksheet_changeにて,まさに正しく動作しますが A1に株価自動数値入力の以下の関数を入れると =RSS|N225.FUT01.OS!現在値 (楽天証券のオリジナル関数,株価がリアルタイムで更新されます) B1,C1共に反応を示さず,A1だけが刻々と更新されます。 試しにD1に上記関数を,そしてA1に=D1とやっても結果は同じでした。 手入力しか,Private sub関数は反応しないのでしょうか?

その他の回答 (2)

  • Hardking
  • ベストアンサー率45% (73/160)
回答No.2

RSSの関数を調べれば分かりますが Excelのセル式の情報コードに対象銘柄の 高値、安値、高値時刻、安値時刻を指定すれば 各々取得できるので、後は範囲時刻内で 最高値、最安値を求めればいいですよ。 RSS|' 銘柄コード . 市場コード '! 情報コード RealTimeSpreadSheetのソフト仕様をよく調べることです。

gyogyo
質問者

補足

回答ありがとうございます。20分足での,それぞれの高値,安値を 9:00ー9:20 9:20-9:40 9:40-10:00 のように取得していきます。 RSSに標準装備の最高値,最安値は 「一日」を通してのものですので 役には立ちません。

noname#60992
noname#60992
回答No.1

いろいろ方法はあると思いますが、 >関数でセルにif分を使うと自セルとの比較になり,どうしても循環参照になってしまい,できません 最高値と最小値というセルを作ってそこと比較したら いかがでしょうか。

gyogyo
質問者

補足

回答ありがとうございます >>最高値と最小値というセルを作ってそこと比較し>>たらいかがでしょうか。 今度はそのセルが循環参照になってしまいます。

関連するQ&A