三流君 ken3のmemo置き場

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

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

6/14 .ReadyState プロパティ の テスト IE操作 VBA

www.youtube.com
http://www.youtube.com/watch?v=-tVlRY0DSZU

よく見かけるIEの表示待ちは、.ReadyStateが4(READYSTATE_ COMPLETE)になるまでループ

下記のような感じだと思います。
While objIE.ReadyState <> 4
DoEvents
Wend
でも、 なぜ4?と疑問を持ちますよね?
そんな疑問を少しでも解消するためにループの中で.ReadyStateを表示するテ ストをしてみます。
カテゴリ: 科学と技術

タグ: .ReadyState プロパティ テスト IE操作 VBA 三流君

テストで使ったソースは http://ken3-info.blog.ocn.ne.jp/objie/2009/06/readystate_1393.html を見てください。

'参照設定 Microsoft Internet Controls(Microsoft Browser Helpers)
'参照設定の方法は、 http://www.ken3.org/cgi-bin/group/vba_ie_object.asp をみてください。

Sub ie_test()  'ページの移動後、.ReadyState <> READYSTATE_COMPLETE を テストする。

    'IEの起動
    Dim objIE As InternetExplorer '変数を定義します。
    Set objIE = CreateObject("InternetExplorer.Application") 'オブジェクトを作成します。
    objIE.Visible = True '可視、Trueで見えるようにします。
    
    '表示位置とサイズを調整する
    objIE.FullScreen = False  '※まぁ、わざわざ設定しなくてもいいけど。
    objIE.Top = 100      '左上 上位置
    objIE.Left = 100     '左上 左位置
    objIE.Width = 800    '横幅
    objIE.Height = 600   '高さ
    
    'XXXバー、外観・外枠の調整。
    objIE.Toolbar = True     'タブの切り替えで必要なので、ツールバーを表示にする
    objIE.MenuBar = False    'メニューは非表示にする
    objIE.AddressBar = True  'URLなど アドレスバーは確認のため、表示する
    objIE.StatusBar = True   '一番下のステータスバーを表示。
    
    'テストで yahoo.co.jp を表示する。
    Debug.Print objIE.ReadyState   'ページ移動前に.ReadyStateをテストで表示する。
    objIE.Navigate "http://www.yahoo.co.jp/"
    
    'ページの表示を待ち
    Dim strWORK As String   '前回表示文字
    Dim strReadyState As String   '秒とReadyStateを文字列にする
    strWORK = ""
    While objIE.ReadyState <> READYSTATE_COMPLETE '.ReadyState <> 4の間まわる。
        strReadyState = Second(Now) & ":" & objIE.ReadyState  '秒と.ReadyStateを作成
        If strWORK <> strReadyState Then  '前回表示した文字列と比較して違ったら
            Debug.Print strReadyState     '秒とReadyStateを表示する。
            strWORK = strReadyState       '↑で表示した文字を保存する(次回比較用)
        End If
        DoEvents  '重いので嫌いな人居るけど。
    Wend
    
    Debug.Print objIE.ReadyState   'ループを抜けた後も念のため、最後に表示する。

End Sub

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

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


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

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


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