Access (VBA)

Access VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(指定なし : 指定なし)
「Microsoft Web Browser」コントロールでの操作3
投稿日時: 21/11/03 17:40:14
投稿者: コンギョ

いつもありがとうございます。
 
Microsoft Web Browserコントロールを配置してwebページを操作しようとしています。
件名:「Microsoft Web Browser」コントロールでの操作
https://www.moug.net/faq/viewtopic.php?t=80983
件名:「Microsoft Web Browser」コントロールでの操作2
https://www.moug.net/faq/viewtopic.php?t=80991
 
今まで経緯を整理しますと、
⓵accessのフォームに配置したWeb Browserコントロール(webView)にwebページを読み込み。
AHTML内のクラス名"button"を検索してクリック。
B遷移したページのドキュメントを取得。(htmlDoc)
C目的のaタグをクリック。
D新しく起動するウィンドウを捕まえて、2つ目のWeb Browserコントロール(webView2)にwebページを読み込み。
Private Sub webView_NewWindow2(ppDisp As Object, Cancel As Boolean)
  Set ppDisp = Me!webView2.Object
End Sub
 
EwebView2のドキュメントを取得。(htmlDoc2)
Set htmlDoc2 = Me!webView2.Object.Document
Set frameDoc2 = htmlDoc2.frames(1).Document
 
F目的のaタグをクリック。
For Each tr In frameDoc2.getElementsByTagName("table")(1).getElementsByTagName("a")
    If InStr(tr.outerHTML, "OrderSearch") > 0 Then
        tr.Click
        DoEvents
        Exit For
    End If
Next
     
Do While Me!webView2.Object.Busy = True Or Me!webView2.Object.ReadyState <> 4
    DoEvents
Loop
 
G遷移したページのドキュメントを取得。(htmlDoc2)←これが取得できない。
Set htmlDoc2 = Nothing
Set htmlDoc2 = Me!webView2.Object.Document
 
Gで、Debug.Print htmlDoc2.documentElement.innerHTML とするとEの状態のままになります。
 
そこで前回の質問でhatena様に教えていただいた、sleepを至る所に入れてみましたが、大きく秒数をとっても、access自体が砂時計状態で固まっているだけで遷移したページのドキュメントを取得できません。
いろいろ調べた結果、Web Browserコントロールには、DocumentCompleteといったイベントが用意されていて以下のように使用してみましたが、引っかかることなくイベントが行われていませんでした。
Private Sub webView2_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    Stop
End Sub
 
この一連の操作をステップインで行うとGには遷移したページのドキュメントを取得できます。
 
どうしたら正常な遷移ができるのでしょうか。
 
みなさんのお知恵を拝借ください。本当に困っています。
よろしくお願いいたします。

トピックに返信