三流君 ken3のmemo置き場

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

挨拶・自己紹介:
失敗続きのAB型の変わり者 :三流プログラマー Ken3です
フリーのエンジニア・個人事業主です・・と書くと聞こえはイイが(それとなくカッコよく聞こえるが)、 現在は小さな案件の受注請負 と 短期派遣 で 日々つつましく?ほそぼそと暮らしてます。

よく検索されるキーワード: [質問回答XXXXさんへ] [CreateObject] [VBA] [JRA競馬オッズ]

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

Ken3 ホームページ 目次

分類:HPを大きく分けると4つの柱(分類)です。

  1. [VBA・マクロ プログラミング]の解説
    当店の人気はVBA系のCreateObject("XXXXXX.application")で他のアプリケーションを操作するサンプルが人気です
  2. [プログラマーの愚痴]では、あまり見せたくない三流プログラマーの内面かな。
    三流君を踏み台にする
  3. [古いクラシック ASP(Active Server Pages)]の解説。
  4. [元コンビニ店長時代の話]が弟に巻き込まれ、失敗した脱サラ、畑違い?の仕事で失敗。
主に上記4つの分類でHP作成やメルマガの発行を行ってます。
※更新頻度が落ちていて情報の鮮度が悪いです。



本当に三流なんです(笑):たまにスゴイですねなんて言われることもありますが、
真実は→ [三流君の真実は...] ←を初めに見てくださるとわかると思います。
(からくりは、成功例↑しか載せてなくて ヒドイ失敗例はお蔵入り迷宮入りが多かったりします)