• ベストアンサー

株データの収集

ヤフーより株価データを収集するエクセルのマクロやアドインが ありますよね。 同じようなものをエクセルのVBAで自作したいのですが、 取っ掛かりが分かりません。 収集の仕方や、参考になるホームページ・書籍をご教授ねがいます。

質問者が選んだベストアンサー

  • ベストアンサー
  • pauNed
  • ベストアンサー率74% (129/173)
回答No.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 こんな感じ^ ^

__hiro__
質問者

お礼

回答ありがとうございます。 私が追い求めていたものズバリです! 各ステートメントを解読してみます。

関連するQ&A