掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
DocumentCompleteを使うには? (ID:85542)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
魔界の仮面弁士さん、ご教授本当にありがとうございます。 さっそく先のコードでデータ保存をDocumentCompleteの中に移してみようと改コードを続けた結果、思い通りの動作をさせることができました。とても不恰好なコードですが添付しておきます。 1.上記のコードをデバッグで追ってみるとCommand1_Click()がEnd Subまで行かないとWebBrowser1_DocumentCompleteが呼ばれないことが分かった。なのでCommand1_Click()内でループして各URLの内容を読み込ませることを断念。(1つ目、2つ目のHTMLの内容は中途半端で終わってしまう) 2.次にWebBrowser1_DocumentComplete内でWebBrowser1.Navigateをループさせようとするがコンパイラに型が一致しないと怒られ断念。 3.それならば新たにFunction nextURL()を作ってその中でWebBrowser1.Navigateをループさせることにする。流れの構想はCommand1_Click()→WebBrowser1_DocumentComplete()→nextURL()→WebBrowser1_DocumentComplete()→nextURL()→WebBrowser1_DocumentComplete() そのためにWebBrowser1.Document.body.outerhtmlだけをWebBrowser1_DocumentComplete()内に置くがこれも怒られ断念。デバッグしてみるとexeの読み込み時にWebBrowserが呼ばれている様子。なのでCommand1_Click()をForm_Load()にしてみた。その結果が次のコード。これで動くようになった。 Option Explicit Dim stockURL(2) As String Dim i As Integer Dim strTemp1 As String Dim a Private Sub Form_Load() stockURL(0) = "http://quote.yahoo.co.jp/q?d=t&s=4689.T" 'ヤフー stockURL(1) = "http://quote.yahoo.co.jp/q?d=t&s=6758.T" 'ソニー stockURL(2) = "http://quote.yahoo.co.jp/q?d=t&s=9437.T" 'ドコモ WebBrowser1.Navigate stockURL(i) End Sub Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant) strTemp1 = WebBrowser1.Document.body.outerhtml Open "c:\temp" + CStr(i) + ".html" For Output As #1 Print #1, strTemp1 Close #1 i = i + 1 a = nextURL() End Sub Private Function nextURL() If (i <= 2) Then '配列の要素数を調べる方法が分からないので数字の2を直接代入 WebBrowser1.Navigate stockURL(i) End If End Function 期待通りの結果がもらえるのですが、とてもうまくないコードな感じです。どなたかキレイにしてくださいましたら幸いです。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.