• 締切済み

楽天RSS エクセル マクロVBA

楽天RSSを使ってエクセル2007に日経225先物期近の10分足(9時~翌3時)を下記の様に(A列に10分足の時間、B列にその時間の値、D列に時刻と現在値)を表示させたいです。※D列は表示できています 。D2セルの現在値はリアルタイムで変わるので9時にスタートし、翌3:00まで10分足を表示させたいです。 ★【エクセル】★ 【A】 【B】 【C】 【D】 1 9:00 10030 9:17 ←現在時刻 2 9:10 10050 10080←現在値 3 9:20 10090 4 9:30 10120 5 9:40 10070 6 9:50 10040 7 10:00 10000 8 10:10 9970 ・ ・ 73 2:10 10080 74 2:20 10120 75 2:30 10150 76 2:40 10160 77 2:50 10190 78 3:00 10220 79 1週間ほど試行錯誤しましたが、分かりませんでした。 VBA マクロは初心者です。詳しい方よろしくお願いします。

みんなの回答

回答No.2

Private Sub Workbook_Open() If Format(Now, "hh:mm:ss") < Format("3:00:00", "hh:mm:ss") Then 終了時刻 = Date + TimeValue("3:02:00") Else 終了時刻 = DateAdd("d", 1, Date) + TimeValue("3:02:00") End If インターバル = TimeValue("00:10:00") If Format(Now, "hh:mm:ss") < Format("9:00:00", "hh:mm:ss") And Format(Now, "hh:mm:ss") > Format("3:00:00", "hh:mm:ss") Then 開始時刻 = Date + TimeValue("09:10:10") ElseIf Format(Now, "hh:mm:ss") < Format("16:30:00", "hh:mm:ss") And Format(Now, "hh:mm:ss") > Format("15:15:00", "hh:mm:ss") Then 開始時刻 = Date + TimeValue("16:40:10") Else on_time = Format(Hour(Now) & ":" & Minute(Now) & ":00", "hh:mm:ss") n = Int((Minute(Now) + 5) / 5) * 5 これは5分ピッチ  If n > 59 Then If on_time < "23:56:00" Then on_time = Format(Hour(Now) & ":00:00", "hh:mm:ss") 開始時刻 = Date + TimeValue(on_time) + TimeValue("01:00:10") Else 開始時刻 = DateAdd("d", 1, Date) + TimeValue("00:00:10") End If Else 開始時刻 = Date + TimeValue(Hour(Now) & ":" & n & ":10") End If endif   待ち時間 = DateAdd("s", 20, 開始時刻) Application.OnTime Format(開始時刻, "hh:mm:ss"), "必要な作業を行うマクロ", 待ち時間   反復時刻 = 開始時刻 End Sub Sub 必要な作業を行うマクロ() 必要な作業 If Format(反復時刻, "hh:mm:ss") > Format("15:12:00", "hh:mm:ss") And Format(反復時刻, "hh:mm:ss") < Format("16:32:00", "hh:mm:ss") Then 反復時刻 = Date + TimeValue("16:40:10") Else 反復時刻 = 反復時刻 + インターバル End If If Format(反復時刻, "yyyy/mm/dd" & " " & "hh:mm:ss") < Format(終了時刻, "yyyy/mm/dd" & " " & "hh:mm:ss") Then '終了時刻になったら終わる 待ち時間 = DateAdd("s", 20, 反復時刻) Application.OnTime 反復時刻, "orgdata.必要な作業を行うマクロ", 待ち時間 End If 細かいバグは ご容赦。

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

要件のみ RSSのイベントは Calculate である。 そこに、c?d?の 取得時間の 分が 10分 単位に成ったら、A,Bにデータ転送。 欠点、データ配信が 必ず 10分ごとにあるとは限らない(特に夜間の取引が 少ない時) 別の方法 起動時に タイマーで 9:00 に タイマー登録。 9:00 やりたいこと 実行される。 その ルーチンの最後に 9:10 に この、やりたいことを タイマー登録する。 以降、無限ループで 終了時間まで

59773788
質問者

補足

御回答ありがとうございます。 自分の力量不足で分からなく進まないので、可能であるならばモジュール⁈マクロ⁈を教えて頂きたいです。よろしくお願いします。

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

関連するQ&A