HTMLのテーブル値を取得するには?

解決


mintman  2006-06-06 06:26:31  No: 131717

HTMLのテーブルから値を取得したいのですが、
下記のようにするとHTMLによらずTABLE数が1になってしまい、
正しく取得できていないようでその理由が判りません。
申し訳ないですがどなたか理由を教えて頂けないでしょうか。

WebBrowser1.Navigate "http://www.fortune-capital.co.jp/index.php?pageId=173"
Set objTable = WebBrowser1.Document.getElementsByTagName("TABLE")
Debug.Print "TABLE数:", objTable.length
objV = objTable(1).rows(0).cells(0).innerText


VB梅  2006-06-06 08:03:47  No: 131718

mintmanさんへ
アドレスのソースを見ると
テーブルの中に取得したいテーブルがありますね
Set objTable2 = objTable.Document.getElementsByTagName("TABLE")
Debug.Print "TABLE数:", objTable2.length
で確認してください。


ガッ  2006-06-06 09:36:37  No: 131719

> WebBrowser1.Navigate "http://www.fortune-capital.co.jp/index.php?pageId=173"
このNavigateメソッドの使い方は、非同期ではなかったでしょうか?


mintman  2006-06-07 07:41:56  No: 131720

VB梅さん、ガッさん、ご教示有難うございます。
仰るとおり、このHTMLはテーブルの中にテーブルがある様なので
それはVB梅さんの方法で回避したいと思います。

しかしもう一つの問題は、このHTMLを読み込んでTABLEタグを探した後
必ず1回目はオブジェクトの中身が空になってしまう事です。
ステップインで1行ずつゆっくり読んでいくと空にならずちゃんと値が入るので、
多分HTMLの読み込みが完了していないことによる現象かと思うのですが、
sleepをNavigateの後に入れる等しても改善しません。
これがガッさんの仰る非同期というのと関係あるのでしょうか?


mintman  2006-06-07 08:02:44  No: 131721

すみません、後半の問題は既出でした。
DoEvents

    Do While WebBrowser.Busy = True
        DoEvents
    Loop

    WebBrowser.Visible = True

    Do While WebBrowser.Document.ReadyState <> "complete"
        DoEvents
    Loop

VB梅さん、ガッさん、有難うございました!!


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加