|
熊谷隆史 さん、こんにちは。あつしです。
年明け早々、アドバイスありがとうございます。
>> While objIE.Busy or objIE.Document.ReadyState <> "complete"
>> DoEvents
>> Wend
>
>IEのBusyプロパティとDocumentプロパティを
>合わせて判定しないでください。
>定番の処理なのでGoogle検索すれば分かりますが
>大抵、2つのループに分けてるはずです。
最初に勉強したときに、1つにまとめてあったので、そのまま1つにまとめて使用していました。
確かに、多くのHPでこの処理は二つに分けてありますね。
もう少し、注意を払うべきでした。
>> objIE.Document.Script.setTimeout "javascript:obj.click", 1000
>
>無効な構文なので、後続のSendKeysでクリックされてるのでしょうね。
ここを削除しても、確かにさどうしました。
自分がコードを全く理解せず使っていることがばれてしまいましたね。
>> 問題は、[59379]でも書いたように
>
>NewWindow2イベントでどうぞ。
今少し調べてみたのですが、やはり”イベント”とか出てくるとちんぷんかんぷんで、、、
そこで、少しばかりなぜ動かないのか考えてみました。
他のシュチュエーションでは、問題なく動くのに、なぜ、ここでは上手く作動しないのか?
で、思いついたのは、新しいウインドウが開き始める前に、
For Each oIE In oSH.Windows
〜
Next
を抜けてしまっているのでは無いか?と。(正しいかどうかはわかりませんが。)
そこで、Sleepをこの前に置き、50ミリ秒ほど休ませて見ましたところ、無事動作することが出来ました。
実際にはSleepで休ませるのは的確な処理でないような気がするので。
URLを抜き出して、目的のURLが取得できなければ、最初からループさせるようなコードにしようと思います。
これにて、全ての疑問が解決されました。
熊谷さんをはじめ、アドバイスいただいた皆様に深く感謝いたします。
本当にありがとうございました。
|
|