CoCoのYDブログ

心に思い浮かんだことを少し掘り下げ発信します

【VBA】ページ表示も待つことが必要

こんにちは

昨日Kindleで本を買い、鬼の形相で読み漁ってる次第でございます。

知らない知識、情報がこんなに簡単に手に入るなんていい時代になりました。

さて、序の序までしか読んでいないのですが、IEでページを表示したら少し待たないとエラーが発生するようです。

 

 サンプルプログラム

Sub WaitTest()
Dim ie As InternetExplorer

Set ie = CreateObject("InternetExplorer.Application")

ie.Visible = True
ie.navigate "https://ydcoco.hatenablog.com/"

MsgBox ie.document.body.innerText

End Sub

 こんな感じですかね

1行目:プロシージャー開始

2行目:変数ieをInternetExplorer型で宣言

3行目:なし

4行目:ieオブジェクトにInternetExplorer.Applicationを設定

5行目:なし

6行目:IEを表示

7行目:当ブログのURLを設定

8行目:なし

9行目:当ブログのテキストをMsgBoxで表示

10行目:なし

11行目:プロシージャの終了

 

これで実行を行うとエラーが発生します。

f:id:takataka2743:20180905213008p:plain

これはページが完全に開ききっていないにも拘らず、テキストととしてページを出力しようとしているかららしいです。

 

試しに8行目にブレークポイントを設定してみましょう

下の画像の赤丸部分をクリックしてみましょう。

同じような赤丸が表示されると思います。

f:id:takataka2743:20180905213321p:plain

この状態でプログラムを実行すると下の画像のようになります。

f:id:takataka2743:20180905213647p:plain

これはこの行の命令を処理する前で停まっている状態ですね。

この状態で[F5]か[F8]を押してみましょう。

するとこのページのテキストが表示されます。

うん、文字が多いんで閉じちゃってくださいw

 

どうやったら安定して表示できるか

毎回ページが表示されるタイミングでブレークポイントを設定したら時間が掛かるしユーザーに配布なんてできませんね。

ならどうしたらよいか・・・

 

といったところで続きは次回に回します。