Excel (VBA)

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

 
(Windows 7 Professional : Excel 2016)
IEで隣にタブを追加したときの読込判断(BusyとReadyState)の記載方法がわかりません
投稿日時: 19/12/26 21:23:37
投稿者: シマ

いつも大変お世話になっております。
インターネットエクスプローラー(IE)を使いサイトを表示するプログラムを作成しています。
Navigate2 メソッドで、一度に3種類のサイトを表示させようと考えています。
 
問題があり、まとめて開くと読込を失敗することが多々有ります。
そこで、1番目のサイトを開き、読込完了後に、2番目のサイトを開き、読込完了したら、
3番目を表示するようにしたいです(読込判断 BusyとReadyStateを使用)
 
教えて頂きたいことは、2番目や3番目の読込の判断方法の記載方法がわかりません。
(ie.Busyだと1ページ目の情報が得られます。2番目場合は、ieの後に何を記載すればよいのでしょうか)
どなたか教えて頂けませんでしょうか。よろしくお願いいたします。
 
  'IEの起動
    Dim IE As InternetExplorer
    Set IE = CreateObject("InternetExplorer.Application")
    IE.Visible = True
     
   '1ページ目を開く
     IE.Navigate2 "http://サイトA/"
   '1ページ目の読み込み待ち
     Do While ie.Busy Or ie.ReadyState <> READYSTATE_COMPLETE
         Sleep 100
         DoEvents
     Loop
 
  '2ページ目を開く
    IE.Navigate2 "http://サイトB/", 2048
  '2ページ目の読み込み待ち
  ※ 記載方法がわかりません。

  '3ページ目を開く
  IE.Navigate2 "http://サイトC/", 2048
  '3ページ目の読み込み待ち
  ※ 記載方法がわかりません。 
 
 
 
 
 
 
 

回答
投稿日時: 19/12/28 11:07:18
投稿者: simple

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
を補ったうえで、全く同じものを記載して、うまくいきました。
環境の違いなんですかね。(当方は、Win7,Excel2010,IE11)
待機処理はサブプロシージャにするとよいかも。

トピックに返信