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
mintmanさんへ
アドレスのソースを見ると
テーブルの中に取得したいテーブルがありますね
Set objTable2 = objTable.Document.getElementsByTagName("TABLE")
Debug.Print "TABLE数:", objTable2.length
で確認してください。
> WebBrowser1.Navigate "http://www.fortune-capital.co.jp/index.php?pageId=173"
このNavigateメソッドの使い方は、非同期ではなかったでしょうか?
VB梅さん、ガッさん、ご教示有難うございます。
仰るとおり、このHTMLはテーブルの中にテーブルがある様なので
それはVB梅さんの方法で回避したいと思います。
しかしもう一つの問題は、このHTMLを読み込んでTABLEタグを探した後
必ず1回目はオブジェクトの中身が空になってしまう事です。
ステップインで1行ずつゆっくり読んでいくと空にならずちゃんと値が入るので、
多分HTMLの読み込みが完了していないことによる現象かと思うのですが、
sleepをNavigateの後に入れる等しても改善しません。
これがガッさんの仰る非同期というのと関係あるのでしょうか?
すみません、後半の問題は既出でした。
DoEvents
Do While WebBrowser.Busy = True
DoEvents
Loop
WebBrowser.Visible = True
Do While WebBrowser.Document.ReadyState <> "complete"
DoEvents
Loop
VB梅さん、ガッさん、有難うございました!!
ツイート | ![]() |