• 締切済み

楽天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

  • 楽天RSSをエクセルで表示・・・

    楽天RSSを使っています。 A1に銘柄コードをいれたら、自動的にB1にRSSで現在値が 表示されるようにしたいのです。 どうすれば実現できるでしょうか? B1には「=RSS│"A1".T!現在値」 みたいに入れてみたんですが、だめでした。

  • Excel マクロで困った

    A列 ------ B列 ------- C列 2716 ----- ------- =RSS|'2716.T'!更新時刻 2236 ----- ------- =RSS|'2236.T'!更新時刻 410 ----- ------- =RSS|'410.T'!更新時刻 9134 ----- ------- =RSS|'9134.T'!更新時刻 263 ----- ------- =RSS|'263.T'!更新時刻 手動 A列 は=RAND( ) で約 1万行 位 手動 C列 に=CONCATENATE( ) で A列 を挿入 =CONCATENATE($C$1,$C$2,$A11,$C$4,C$10) A11 の数字が全部同じになる困った マクロ C列 を完成   Range("c11").Select i = i + 11    f01: Cells(i, 3).Select     Selection.Copy     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _     :=False, Transpose:=False      Application.CutCopyMode = False      ActiveCell.FormulaR1C1 = "=RSS|'2716.T'!更新時刻" 注    Aの2716に数字が全部同じになる困った     i = i + 1     If Cells(i, 3) <> "" Then GoTo f01     End Sub

  • RSSマクロ

    winxp he sp3, excel2003 1. 問合せ 参考a.マクロでは、iNumber = 6501 1個となっています。 これを、銘柄txtから読み込んで、下記のような結果を表示したいのです。 2. 銘柄.txt 約100個: 6501,日立 6502,東芝 6503,三菱電機 3. マクロ結果: コード,銘柄,現在値,高値,安値 6501,日立,770,785,765 6502,東芝,765,779,758 6503,三菱電機,780,985,970 参考: a. Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2008/9/3 ユーザー名 : Cells(1, 1) = "コード": Cells(1, 2) = "銘柄": Cells(1, 3) = "現在値" Cells(1, 4) = "高値": Cells(1, 5) = "安値" Dim iRow As Integer '行指定 Dim iNumber As Integer 'A列4桁数字 iNumber = 6501 'A列の4桁数字初期指定 iRow = 2 '2行目 Cells(iRow, 1).Select 'A列をセレクト(アクティブ化) Cells(iRow, 1) = iNumber 'A列に数字を入力 Cells(iRow, 2) = "=RSS|'" & iNumber & ".T'!銘柄名称" 'B列に式を入力 Cells(iRow, 3) = "=RSS|'" & iNumber & ".T'!現在値" 'C列に式を入力 Cells(iRow, 4) = "=RSS|'" & iNumber & ".T'!高値" 'D列に式を入力 Cells(iRow, 5) = "=RSS|'" & iNumber & ".T'!安値" 'E列に式を入力 End Sub b. マクロ結果: コード,銘柄,現在値,高値,安値 6501,日立,809,815,805 よろしくお願いします。

  • エクセルのマクロで

    エクセルに楽天RSSから 現在値や出来高等を表示させているんですが セルに表示した時刻、現在値、出来高を別のセルに 自動で保存していく方法を探しています。 楽天RSSだとエクセルに取り込んだデータが更新毎に新しいデータ に切り替わってしまうので・・ 申し訳ありませんが詳しい方いらっしゃいましたら 宜しくお願いいたします。

  • EXCEL VBAの書き方を教えてください

    EXCEL2010および2013を使用しております。 以下の場合、どのようなコードを書いたらよいか、教えてください。 (1)EXCELで図のような表を作っており、B列に「時刻」表記だけを表示させるように したいです。  時刻表記(10:00や12:00など)以外に文字列(15時ころ、19時前後)が入っていますが、 文字列が入っているセルは文字を消して、時刻表記だけのセルに統一するにはどのようなコードを書けば良いでしょうか。 例の図には「15時ころ」などの文字列が入っていますが、他の別シートには文字列はなく、すべて時刻表記が入っている場合もあります。 (2)以下の場合のコードの書き方も教えてください。 D列が20%以下の場合はE列の「利益」を0と入力し、D列が21%以上の場合はC列「粗利」とD列「割合」をかけたものを、E列の「利益」に表示する。 VBAを勉強し始めたばかりで色々と調べてみたのですがなかなか難しく、お分かりになる方のお力をいただければと思います。 宜しくお願いいたします。

  • エクセルのRSSの作成で困っています

    最近エクセルのRSSについて勉強しているのですが上手くいかなくて困っています。どなたかご指導いただければ助かります。 (1)RSSで行いたいこと エクセルの表のRSSの時刻をセルC2に表示させ、その時の100品目の数値データがセルG2→G102に表示されます。時間行としてセルR2→AT2まで(16時から10分間隔区切ったセル)を準備していて16時になれば、16時の100品目の数値データがセルG2→G102に表示されるので下記(2)の関数でR2→R102にセルG2→G102のデータの自動記録。16時10分になればS2→S102にセルG2→G102のデータの自動記録。以降10分おきにT2→T102・・・AT2→AT102まで自動で記録と保存を行いたいです。 (2)現在の状況 刻々変化するRSSの時刻をセルC2に表示させ、セルQ2で関数を使用して時刻をテキスト変換しました。C2の時刻が16時になったらセルR2に関数=IF(Q2="16.00",G2,"")でR2からR102数式を複写しました。16時00分ではG2→G102の値を自動で表示させ成功のように思いました。(内心簡単なものだと思いました。)しかし、ここで大きな問題が起こりました。測定記録は10分おきに21時まで!(当然16時10分になればセルR2→R102のデータは消滅しS2に入力した関数=IF(Q2="16.10",G2,"")を複写したセルS2→S102にG2→G102の数値が誇らしげに表示されていました。これではまた重労働が待っています。エクセルの本やネットで調べて検討したのですがうまく出来ません。50過ぎの手習いで行ってはみたのですがやはりハードルが高いことなのでしょうか?周りは私より年配でコンピュータには興味なく一番若い私がやりましょうと張り切ってみたのですが・・・。ちなみにコンピュータはエクセルの関数を少し扱える程度です。(PS)内心VBAやマクロといいうものでなくては出来ないのでは?と落胆しています。こうなればVBAでもマクロでも頑張ろうと思います。どなたか詳しくご指導していただければ助かります。宜しくお願いいたします。

  • エクセルマクロ(VBA)の立て方について

    お世話になっております。 エクセルのVBAマクロについて教えてください。 以下のように2種類A,Bの縦に並んだ時系列データがあった場合、 A No1  2012/6/1    1 A No2  2012/7/1    3 A No3 2012/8/1    4 B No1  2012/6/15   2 B No2 2012/7/15   6 B No3  2012/8/15   7 B No4  2012/9/15   9 上記のデータを別のシートに以下のように表示させたいのです。 (上記1列目は以下1列目に対応、上記4列目の数字をA、B単位で累計和を以下2列目に表示) A 1 A 4 A 8 B 2 B 8 B 15 B 24 以上のVBAマクロの数式の立て方を教えていただけますでしょうか。 よろしくお願いいたします。

  • VBA マクロについて教えて下さい!

    VBA初心者です。 以下の様なマクロを組みたいのですが、マニュアル片手に四苦八苦しております。 どなたかお力をお貸し下さいm(__)m ・A列 区分(A OR B) ・B列 番号(○○○○-○○○○) ・C列 番号前(‐より前を表示したい) ・D列 番号後(‐より後を表示したい) A列・B列にはデータが入ります。 B列の番号を‐(ハイフン)で区切って、C列・D列にそれぞれ転記したいのです。※区分が”A”の場合のみ。 区分が”B”の場合はC・Dは空欄のままで。 Excelの[データ]-[区切り位置]を使って操作を記録してみましたが、”B”の場合は空白にするという条件文を巧く組み合わせる事が出来ません... 他にも色々方法はあると思うのですが、なかなか辿り着く事が出来ません。 どなたかアドバイスをお願い致しますm(__)m

  • エクセルかマクロで・・・

    エクセル関数かマクロで作りたいのですが、   A列に数字B列に個数を入力していくとします。   A列の数字をB列の個数分だけC列に表示したいのです。  例えばA1に300、B1に5、A2に500、B2に6と入力した場合、   C1からC5に300、C6からC11に500、と表示するにはどうしたらよい  でしょうか。 よろしくお願いいたします。

  • エクセルでシフト表を作りたいのですが。

    エクセル初心者です。以下のように1ヶ月のシフト表を作ったのですが、時間帯別の人数を出したいと思っています。色々調べてみたのですがうまくいきません。 ちなみに12時~14時と18時~20時の稼働人数を出したいと思っております。 詳しい方おられましたら、よろしくお願い致します。    A列     B列     C列      D列     E列 ・ ・ ・ ・ BJ列   BK列 1          5/1              5/2               5/31 2         開始時刻  終了時刻   開始時刻  終了時刻   開始時刻  終了時刻 3  Aさん   8:30      17:00   4  Bさん   17:00     25:30  5  Cさん   12:00     21:00 ・   ・       ・        ・ ・   ・       ・        ・ ・   ・       ・        ・ 29 Dさん   18:00      23:00