- ベストアンサー
株データの収集
ヤフーより株価データを収集するエクセルのマクロやアドインが ありますよね。 同じようなものをエクセルのVBAで自作したいのですが、 取っ掛かりが分かりません。 収集の仕方や、参考になるホームページ・書籍をご教授ねがいます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 よく紹介されているのは↓この辺りでしょうか。 『三流君VBA:VBAからIE操作 TABLEの中にTABLE .getElementsByTagNameほか』 http://www.ken3.org/vba/backno/vba177.html サンプルとしては Sub sample() Const READYSTATE_COMPLETE As Long = 4 Const sCHK As String = "日付始値高値" Dim sURL(9) As String Dim x As Object Dim i As Long Dim j As Long Dim n As Long sURL(0) = "http://table.yahoo.co.jp/t?" sURL(1) = "c=2006" sURL(2) = "a=8" sURL(3) = "b=1" sURL(4) = "f=2006" sURL(5) = "d=10" sURL(6) = "e=31" sURL(7) = "g=d" sURL(8) = "s=6758" With CreateObject("InternetExplorer.Application") .Visible = True .navigate Join(sURL, "&") While .busy Or .readyState <> READYSTATE_COMPLETE DoEvents Wend For Each x In .document.getElementsByTagName("TABLE") If Left(x.innertext, 6) Like sCHK Then If x.Rows(0).Cells.Length = 7 Then Exit For End If Next x If Not x Is Nothing Then n = x.Rows.Length ReDim v(n - 1, 6) For i = 0 To n - 1 For j = 0 To 6 v(i, j) = x.Rows(i).Cells(j).innertext Next j Next i Set x = Nothing Sheets.Add Range("a1:g1").Resize(n).Value = v End If .Quit End With MsgBox "finish" End Sub こんな感じ^ ^
お礼
回答ありがとうございます。 私が追い求めていたものズバリです! 各ステートメントを解読してみます。