【DocumentComplete】がうまくいかない


コンボ  2004-04-19 00:13:58  No: 83065  IP: [192.*.*.*]

ひとつのWebBrowserで数回のDocumentCompleteが発生します。
Form_Load時(1回目)
Command1_Click時(2回目)
Command2_Click時(3回目A,3回目B)
という処理なのですが、これを同一のプロシージャで分けるには
どのようなやり方がいいのでしょうか?

編集 削除
魔界の仮面弁士  2004-04-19 09:10:02  No: 83066  IP: [192.*.*.*]

> ひとつのWebBrowserで数回のDocumentCompleteが発生します。
ですね。例えば、フレームを使ったWebページ等では、
フレームごとに発生する事になっていますし。

> これを同一のプロシージャで分けるには
> どのようなやり方がいいのでしょうか?
…? すみません、質問の意味が理解できません。m(_ _)m

編集 削除
コンボ  2004-04-19 11:42:03  No: 83067  IP: [192.*.*.*]

説明不足で申し訳ありません。

> これを同一のプロシージャで分けるには

とは、

Private Sub WebBrowser1_DocumentComplete()
  1回目:(Form_Load時のDocumentComplete)
  2回目:(Command1_Click時)
  3回目:(Command2_Click時)
End Sub

とうようにあるので、2回目の処理の前に1回目の処理が再度行われてしまうのですがどうしたらいいのでしょうか?

編集 削除
ワルツ  2004-04-19 13:02:24  No: 83068  IP: [192.*.*.*]

まだ、意味が分かりませんよ。

Form_Load イベント(1回目)は1回しか発生しないですよ。
だから、 Command1_Click イベント(2回目)時に
Form_Load イベント(1回目)を発生させるような処理を書いているのでは?

サンプルコード(少なくとも Command1_Click の処理内容)を
載せるべきだと思いますけど。

編集 削除
ワルツ2  2004-04-19 13:06:56  No: 83069  IP: [192.*.*.*]

Private 変数などを用意して、
  Form_Load
  Command1_Click
  Command2_Click
イベントの最初にその変数に固有の値をセットして、

WebBrowser1_DocumentComplete イベントで
その変数を見て、分岐させれば良いのでは?

編集 削除
コンボ  2004-04-19 14:39:42  No: 83070  IP: [192.*.*.*]

何度も申し訳ありません。失礼致しました。

Private Sub Form_Load()
    intFlag = 0
    With wbrTest
        .Navigate2 "(URL)"
        Do While .Busy = True And .ReadyState <> READYSTATE_COMPLETE
            DoEvents
        Loop
        .Document.Forms(0).elements(3).Click
        Do While .Busy = True And .ReadyState <> READYSTATE_COMPLETE
            DoEvents
        Loop
    End With
End Sub

Private Sub cmdTest_Click()
Dim objA As Object
    intFlag = 1
    With wbrTest
        Set objA = .Document.frames(0).Document.getElementsByTagName("A")
        objA(6).Click
        Do While .Busy = True And .ReadyState <> READYSTATE_COMPLETE
            DoEvents
        Loop
    End With
End Sub

Private Sub wbrTest_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Dim objTable As Object
    If intFlag = 1 Then
        Set objTable = wbrTest.Document.frames(1).frames(1).Document.getElementsByTagName("TABLE")
        txtForm.Text = objTable(0).rows(1).cells(0)
    End If
End Sub

としたのですが、「Withブロック変数〜」のエラーが出てしまいます

編集 削除
ねろ  2004-04-20 12:52:41  No: 83071  IP: [192.*.*.*]

エラーは何処で出るのでしょうか?

編集 削除