![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
Visual Basic(ExcelVBAですが)からブラウザを操作する方法として、こちらのコーナーからいろいろとアドバイスをいただいて徐々に理解できてきたのですが、ブラウザの表示状態を調べるパラメータ、プロパティなどはあるのでしょうか。URLを指定してブラウザに表示させ、そのURLが存在するかどうかをチェックしたいです。
Sub urlchk()
Dim tagURL As String
Dim objIE As Object
tagURL = "http://goo.ne.jp/"
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True
objIE.Navigate tagURL
Do While objIE.Busy = True
DoEvents
Loop
Stop
'この時点で、ブラウザの表示状態を調べたい
End Sub
正常に表示された場合と、指定したURLが存在せずにエラーになる場合がありますが、エラーの場合も、(1)ブラウザが完全にエラーを出す、(2)ドメイン側で存在しないというメッセージのページを返す、という2通りがあり、判定が難しそうです。そもそもこれを一般的に識別することは無理なのでしょうか。
(1)ブラウザがエラーを出す例
http://www.goo.ne.jp/nai/
(2)goo側で存在しないというメッセージを返す例
http://weather.goo.ne.jp/today/x003/index.html
No.3
- 回答日時:
#2>objIE.Busyみたいに読み込み中であることを返すプロパティはないんでしょうか?
readyState が
3 の時通信中
4 の時完了
になるので、これをチェックするといいのですが、
onreadystatechange イベントが使えるので、イベントによるコールバックを使うのがポーリングするより良いと思います。
参考URLは、JScript によるサンプルですが、基本的には同じです。
参考URL:http://okwave.jp/kotaeru.php3?qid=1674965
No.2
- 回答日時:
CreateObject("Microsoft.XMLHTTP")
を使ってHTTPリクエストを出すことができます。
この場合、status プロパティを使ってサーバーが返してくるステータスコード
statusText でその意味する英文を得ることができます。
でも、二度手間になるような気もするし
そこまでする必要も無いような気がします。
http://msdn.microsoft.com/library/default.asp?ur …
この回答への補足
ありがとうございます。
Statusを取ることはできましたが、応答に時間がかかってStatusが返ってこないままになるケースもあります。
objReq.Open "GET", ActiveCell.Offset(0, 1).Text
objReq.send
Do While ActiveCell.Text = ""
ActiveCell.Value = objReq.StatusText
If ActiveCell.Text = "" And Now > wt Then
ActiveCell.Value = "Time Out"
Exit Do
End If
Loop
みたいなコードを書いてみましたが、objIE.Busyみたいに読み込み中で
あることを返すプロパティはないんでしょうか?
(URLのタイプミスを無くすため、システマチックにチェックしたいのです。)
No.1
- 回答日時:
帰ってきたhtmlなりtextに
"Not Found"
や
"The requested URL /nai/ was not found on this server."
や
"指定されたページがみつかりませんでした。"
などの含まれる文字列で判定するってのではダメですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) EXCEL VBAで NHK NEWSの NEWSデータ内容取得が できない 1 2023/04/09 12:26
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- その他(インターネット接続・インフラ) ブラウザにIPアドレス入力した時 1 2022/06/16 19:08
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Excel(エクセル) 【エクセルマクロ】既に開いているIEの、サイズや表示位置を変更するには 4 2022/12/01 22:57
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/17 11:59
- その他(ブラウザ) edgeで192.168.x.xローカルアドレス表示しない 4 2023/06/18 21:43
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Visual Basic(VBA) エクセル VBA メール本文に指定セルに記載されているURLをリンクとして記載する方法 8 2022/08/08 07:50
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
教えて下さい。
-
POSTで送信するとエラーになる
-
Unityでアニメーションできない
-
python2系での書き方
-
windows7のperlでaccdb接続でエ...
-
WebClientの文字列送信にてエラー
-
VBSがコンパイルエラーになりま...
-
UWCSのBUSYWAIT(IE)
-
VBでグローバル変数を宣言するには
-
VBAで別モジュールへの変数の受...
-
例外処理のフローチャートの記...
-
VBAで「メモリが不足しています」
-
ユーザー定義関数に#NAME?が返...
-
Excel VBAでリンク切れをチェッ...
-
標準モジュールを削除したい。(...
-
Access VBA標準モジュールにつ...
-
Perl モジュールのアンインスト...
-
Excel VBA 『Call』で呼び出す...
-
オフコン(富士通Kシリーズ)...
-
DBD::mysql インストールについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBSがコンパイルエラーになりま...
-
perlをバージョンアップしたら...
-
教えて下さい。
-
SWI-Prologでのエラーに関して
-
【python】requestsでdataとし...
-
erf(x)とerfc(x)のカタカナ読み...
-
w3cの検証エラー?
-
Excelマクロでセルに値が入力さ...
-
powershellで引数受け取り時に...
-
CGIの接続エラー
-
windows7のperlでaccdb接続でエ...
-
POSTで送信するとエラーになる
-
SMTP-AUTH でメール送信
-
VBからブラウザの表示状態(リ...
-
メールアドレスについて
-
perl ver5.24.0 x68版で、requi...
-
ショッピングカートのカスタマイズ
-
英字のみを検索する正規表現に...
-
au「W54S」だけcgi-lib.plで不...
-
Pythonプログラミングでエラー
おすすめ情報