SSブログ

Kingsoft Spreadsheetsで株価取得 その2 [VBA]

では、URLを可変にしていきます。

銘柄コードはA列に入力しています。
2行目からデータが始まっているので、
    strCode = Cells(2, "A")
とすると、先頭コードが取得できます。
デバッグ実行すると、3048が取得できました。
そう、先頭コードはビックカメラでした(笑)

とりあえず、A列が空になるまでループして
コードを取得してみます。

    Dim strCode As String
    Dim rowIndex As Integer
   
    rowIndex = 2
    strCode = Cells(rowIndex, "A")
   
    Do While strCode <> ""
        rowIndex = rowIndex + 1
        strCode = Cells(rowIndex, "A")
    Loop


コードは問題なく取れました^^

さて、あとURLに必要なのは日付です。
市場の開いている日となると、考えるのが面倒なので、
シートのあいている場所に更新日を持たせ、更新日~今日のデータを取得してしまいます。
私は、更新日内でも再度更新するかもしれないので(時系列データが更新された後でもう一回、とか)
更新日からにしていますが、
必要なければ日付を比較してExitしてしまうのがいいかと思います。

更新日がないときのための初期値を指定
 Private Const INITUPDATEDD As Date = "2012/08/9"

シートから更新日(検索の開始日)を取得
     '開始日取得
    updateDate = Cells(1, "S")
    If updateDate = 0 Then
        updateDate = INITUPDATEDD
    End If

上の銘柄コードの取得と合わせてURL作成して
ダウンロード。

    '最初のコード取得
    rowIndex = 2
    strCode = Cells(rowIndex, "A")
   
    Do While strCode <> ""
       
        'URL生成
        strUrl = "http://info.finance.yahoo.co.jp/history/?code="
        strUrl = strUrl + strCode + "&"
        strUrl = strUrl + "sy=" + CStr(Year(updateDate)) + "&"
        strUrl = strUrl + "sm=" + CStr(Month(updateDate)) + "&"
        strUrl = strUrl + "sd=" + CStr(Day(updateDate)) + "&"
        strUrl = strUrl + "ey=" + CStr(Year(Now)) + "&"
        strUrl = strUrl + "em=" + CStr(Month(Now)) + "&"
        strUrl = strUrl + "ed=" + CStr(Day(Now)) + "&"
        strUrl = strUrl + "tm=d"
       
        Set html = New MSHTML.HTMLDocument
        Set document = html.createDocumentFromUrl(strUrl, vbNullString)

        ' ダウンロード待ち
        Do
            DoEvents
            If (document.readyState = "complete") Then
                Exit Do
            End If
        Loop While (True)
       
        resHtml = document.body.innerHTML
       
        '次のコード取得
        rowIndex = rowIndex + 1
        strCode = Cells(rowIndex, "A")

    Loop

    '更新日更新
    Cells(1, "S") = Now

 

ウォッチで表示できている範囲が短すぎてデータがちゃんと取れているのか不安ですが(笑)
次回は取得したhtmlの中身を解析します。


タグ:VBA
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

Kingsoft Spreadsheet..Windows Live Writerを.. ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。