2555494 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

楽天ブログ 買っちゃった

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
2014/10/13
XML
カテゴリ:
rss.jpg

楽天証券のRSSを使ってExcelでこんな感じに東証一部全銘柄の当日の株価データを取得しようとしたんだけど
途中からデータが表示されなくなるんだよ。

調べたら同時に登録できるのは300銘柄までっていう制限があるんだね。

300銘柄の制限を突破するにはどうしたらいいのか調べたら
 ・Excelのbookを300銘柄以内で複数に分ける。
 ・300銘柄取得して別の場所にコピーする。これをタイマーで繰り返し起動する。
という方法を見つけたからやってみたらうまくいったよ。

最終的には300銘柄以内で処理を繰り返す方法にしたけどね。

Sub 株価取得()

Dim code As String
Dim GYO As Long, GYOs As Long, GYOend As Long
Dim n As Long
Dim r As Range
Const Nend As Long = 150 '一度に処理する銘柄数 300以下にする

GYOend = Cells(2, 1).End(xlDown).Row  '最終行
Range(Cells(2, 2), Cells(GYOend, 6)).ClearContents

GYO = 2 '開始行

Do
   
    GYOs = GYO
    For n = 1 To Nend
       
        code = Cells(GYO, 1)
   
        Cells(GYO, 2) = "=RSS|'" & code & ".T'!始値"
        Cells(GYO, 3) = "=RSS|'" & code & ".T'!高値"
        Cells(GYO, 4) = "=RSS|'" & code & ".T'!安値"
        Cells(GYO, 5) = "=RSS|'" & code & ".T'!現在値"
        Cells(GYO, 6) = "=RSS|'" & code & ".T'!出来高"
               
        DoEvents
       
        GYO = GYO + 1
        If GYO > GYOend Then Exit For '最終行なら途中で抜ける
       
    Next n
   
    Cells(GYO, 5).Select  '処理の途中が確認できるように次の行を選択
   
    Do  

        n = 0
       
        For Each r In Range(Cells(GYOs, 2), Cells(GYO - 1, 6))
       
            If IsError(r) Then n = n + 1
            DoEvents
       
        Next
       
    Loop Until n = 0 '#N/Aが消えるまで待つ

    Range(Cells(GYOs, 2), Cells(GYO - 1, 6)).Value = Range(Cells(GYOs, 2), Cells(GYO - 1, 6)).Value  '数式を値に置き換える
   
Loop Until GYO > GYOend '最終行まで繰り返す

End Sub






お気に入りの記事を「いいね!」で応援しよう

Last updated  2014/10/13 05:09:47 PM
コメント(2) | コメントを書く


PR

Category

Keyword Search

▼キーワード検索

Recent Posts

Rakuten Card

Headline News

Calendar

Favorite Blog

サラリーマンってム… ロデ男0166さん
僕のIT活用と勝手な話 LungYaiさん
おためしブログ~自… Tanukidadさん
ひっこりんの冒険 ひっこりんさん
今日のこの一頭(本物… れいろーさん

Freepage List

Free Space














© Rakuten Group, Inc.