WebサイトからデータをExcelに取得する方法②

EXCEL

みなさん、こんちには!

前回に引き続き、 WebサイトからExcelを使ってデータを取得 していきます。
今回は、 ステータスを取得し状態を確認してからデータを取得する方法 です。

下記は、前回までのコードです。これに状態を確認して読み込み完了するまで待機するコードを追加していきます。

readyStateプロパティを使って読み込み完了の状態になるまで確認を繰り返すコードを見てみましょう。

web_con.readyState < 4 の 「4」は、 読み込み完了 を表す定数になります。
Sleep 1 は、1ミリ秒を停止するWindows API関数になります。
VBAには Application.Wait メソッドがあるのですが、何時になるまで停止すると言う意味になります。単位も基本的には秒単位になります。これを同じ1ミリ秒を停止するコードを表すと下記になります。

Application.Wait Now() + 1 / 86400000

1ミリ秒を表すのみ1ミリ秒/1日になります。コードの見た目なのか秒単位しか出来ないと勘違いなのかは分かりませんが、 Sleep 1 の方が良く使われている様です。
ただし、API関数を使う為には別のコードが必要になります。下記に表示します。

このコードは標準モジュールに記述しましょう。
※Excelの32bit・64bitの両方に対応しています。

いよいよデータの取得になります。
responseText プロパティを使ってテキストで取得するコードが下記になります。

Dim HTML_str As String
HTML_str = web_con.responseText

実行してみましょう。

テキストが文字化けしているのに気付くと思います。
次回は、文字コードを変換して正しくテキストを表示してみましょう。

コメント

タイトルとURLをコピーしました