ウィルスソフトで、IEからファイルのダウンロードが一発でできない。 削除
Message#8 2017年6月5日(月)17時32分 From: みらー |
困ってます君のメッセージ(#6)への返事 通常は、ページ(URL)が遷移したら、 documentは遷移先のものになるはずですが…。 以下は簡単なサンプルです。 Sub test() Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.navigate "http://〇〇〇" '最初のページ For Each objtag In objIE.document.getElementsByTagName("a") If objtag.innertext Like "http*" Then objtag.Click 'リンクをクリック Exit For End If Next objtag '遷移待機 While objIE.readyState <> 4 Or objIE.Busy = True DoEvents Wend '遷移後のページ For Each objtag In objIE.document.getElementsByTagName("a") If objtag.innertext Like "http*" Then objtag.Click 'リンクをクリック Exit For End If Next objtag End Sub 最初のページと遷移後ページで同じ処理をしていますが、 objIE.documentはページ遷移した時点で入れ替わってるので、 objIEを毎度用意する必要はありません。 「リンクがなくエラーになる」のは、 ページ遷移が完了する前に、documentを探すコードが走ったりしていませんか? > このようにしたら遷移したドキュメントのURLを取得できました。 > > Dim objShell, objIE2 As Object > Set objShell = CreateObject("Shell.Application") > Set objIE2 = objShell.Windows(objShell.Windows.Count - 1) > > ソースはここでした。 > https://teratail.com/questions/9052 > > > みらーのメッセージ(#4)への返事 > > > > ありがとうございます。 > > > > ページが遷移しても、 > > 最初のie.documentのオブジェクトは変更していないので、 > > ie.document.urlは前のアドレスのままで、 > > リンクがなくエラーとなってしまいます。 > > > > 遷移した、今開いている新しいページを > > ie.documentにする方法はありますか? > > > > 新しいオブジェクトを作成しなおしすればいいでしょうか? |
上のメッセージを削除します。
よければパスワードを入力し、削除ボタンをクリックしてください。