Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


26637 / 76732 ←次へ | 前へ→

【55426】Re:WEB上の表の参照方法
発言  かみちゃん E-MAIL  - 08/5/3(土) 16:48 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>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

3 hits

【55423】WEB上の表の参照方法 KEI 08/5/3(土) 15:21 質問
【55426】Re:WEB上の表の参照方法 かみちゃん 08/5/3(土) 16:48 発言
【55433】Re:WEB上の表の参照方法 KEI 08/5/4(日) 0:54 お礼
【55434】Re:WEB上の表の参照方法 かみちゃん 08/5/4(日) 8:04 発言
【55439】Re:WEB上の表の参照方法 KEI 08/5/4(日) 11:18 お礼

26637 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free