三流君 ken3のmemo置き場

三流プログラマーのメモ書きです。主にVBAやWindowsの話題が多いです

挨拶・自己紹介:「こんな感じ」や「あの、あの」と活舌の悪い、
三流プログラマーのオッサンです
Ken3三流君へ問い合わせ・連絡先:
[Ken3(管理者)へメッセージを送る], [YouTube動画にコメントを書く]
※↑質問・感想,コード修正・作成など気軽に送ってください。

XXXXXさんへ IE使用時にページ移動後のHTMLDocumentを再取得 について

下記の質問をいただく。

>IE使用時にページ移動後のHTMLDocumentを再取得したいのですができません。
>ご教授いただけないでしょうか??

IE使用時にページ移動後のHTMLDocumentを再取得
ですが、
通常は、移動後もそのまま使えるので、
※逆に、移動前のページのデータは書き換えられているので使えない
↑何言ってんだか、意味不明・・・

パターン1:ページ表示後に検索データを入れて、検索、検索結果を処理
https://www.youtube.com/watch?v=_L2v_i-UJsY
www.youtube.com

'検索データをセットする
objIE.document.all("q").Value = "movie:w560"

'検索ボタンを押す
'INPUTのタグを探す
Dim objINPUT As Object
For Each objINPUT In objIE.document.getElementsByTagName("input")
Debug.Print objINPUT.Value
'検索ボタンを見つけて押す
If objINPUT.Value = "検索" Then
objINPUT.Click 'クリック処理
DoEvents
Exit For
End If
Next

↑クリックあと、ページが変わります。
すると、
objIE.document が 自動的に次のページに更新されるので、
IE使用時にページ移動後のHTMLDocumentを再取得
していると思います。

よくあるエラーが、.Click 'クリック処理
検索をクリック後にページが切り替わり、
HTMLDocumentが再構成されるまえに処理をすると、エラーになったりします。

Call IE_WAIT(objIE) '検索終了待つ

なので、ページ待ち後には、objIE.documentの中身が現在のページに変わっているので、

次のページで、編集ボタンを探して押す

'編集処理を押す
    'INPUTのタグを探す
    Dim objA As Object
    For Each objA In objIE.document.getElementsByTagName("a")
        Debug.Print objA.href
        'リンク先URL entry=を見つけて押す
        If InStr(objA.href, "entry=")0 Then
            objA.Click  'クリック処理
            Exit For
        End If
    Next

↑おしたら、また、表示を待つ
Call IE_WAIT(objIE) '編集画面の起動を終了待つ

すると、objIE.documentの中身が現在のページ 次の編集ページに変わっているので

'データをセットする
objIE.document.all("body").Value = Replace(objIE.document.all("body").Value, ":movie:w560", ":embed:cite")

'更新ボタンを押す
objIE.document.all("submit-button").Click '更新ボタンをクリック

など、処理を行ってます。


いろいろ言ってますが・書いてますが、
質問の意味が違うような気がしてきた・・・

サンプルコードは
ken3code.hatenablog.jp
です

質問の意味を私が勘違いしたような気がしますが、
解決の糸口となれば幸いです。  三流プログラマー Ken3


質問・感想・クレームなど、
気軽にコメント欄に書いてもらえるとうれしいです。

[Googleフォームにコメントを残す]
↑質問・コメントの入力フォームです、気軽に書いてください


フッター:最後にKen3Videoの動画一覧を紹介します

YouTubeにアップした動画です。他の動画を一瞬でも見てもらえるとさらに嬉しいです。
再生リスト:[三流君Ken3の最新動画]←リストの一覧形式で表示する


また、ブログを見に来てくださいね。ではまたぁ~