| 
    
     |  | こんにちは。かみちゃん です。 
 >YAHOOファイナンス→株・投資→例:コード6301→時系列の表を現在、エクセルに
 >いったん取り込んでから、A1を選択させて貼り付けまして、A1が”日付”なら
 >ば、情報取得成功それ以外なら取得失敗と判断せています。
 >これでも目的の結果は得られるのですが、回数が多くなると、張り付けという動
 >作が処理速度を低下させてしまします。
 >今回、お聞きしたい事なのですが、WEB上の表の特定の場所をエクセルに貼り付け>ずにWEB上で参照して条件判断する事は可能でしょうか?
 
 Yahoo!ファイナンスからのデータ取得は、私もしているのですが、
 WebQueryを使わずにInternetExplorer(IE)との連携による処理にすると、
 シート上に展開する必要はなく、判断できます。
 
 Sub Sample()
 Dim myIE As Object
 Dim myURL As String
 Dim lngPos As Long
 
 Const strFindString As String = "日付始値高値安値終値出来高調整後終値*"
 
 Set myIE = CreateObject("InternetExplorer.application")
 
 '次の行のxxxxは、httpを半角にしたものにしてください。
 myURL = "xxxx://table.yahoo.co.jp/t?s=6301.t&g=d"
 myIE.Navigate2 myURL
 '表示終了まで待つ
 Do While myIE.Busy = True
 DoEvents '特に何もしないで.Busyの状態が変わるまで待つ
 Loop
 Do While myIE.ReadyState <> 4
 DoEvents '特に何もしないで.ReadyStateの状態が4に変わるまで待つ
 Loop
 
 strWebTextData = myIE.Document.body.innerText
 lngPos = InStr(strWebTextData, strFindString)
 If lngPos > 0 Then
 strWebTextData = Mid(strWebTextData, lngPos + Len(strFindString) + 2)
 lngPos = InStr(strWebTextData, "日")
 strWebTextData = Mid(strWebTextData, 1, lngPos)
 If IsDate(strWebTextData) Then
 MsgBox "時系列データの情報取得に成功しました" & vbCrLf & _
 strWebTextData
 Else
 MsgBox "時系列データの情報取得に失敗しました" & vbCrLf & _
 strWebTextData
 End If
 Else
 MsgBox "時系列データは取得できません"
 End If
 
 End Sub
 
 IE連携については、以下のURLあたりも参考にしてみてください。
 http://www.ken3.org/cgi-bin/group/vba_ie.asp
 
 
 |  |