- 締切済み
VBAでHTTPレスポンスコード取得
EXCEL VBAで下記の質問、URLリストからHTTPレスポンスコードを取得したいと考えております。 EXCEL VBAでたくさんのURLの一覧からHTTPレスポンスコードを取得したい。 http://okwave.jp/qa/q5474619.html のBAを使用して取得を行ってるのですが、 サーバーのレスポンスが遅い際に、一定の秒数(120秒程度?)が経って 反応がない場合は、スキップしたいのですが組み込み方がどうしてもわかりません。 ご教授いただけると幸いです。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- keithin
- ベストアンサー率66% (5278/7941)
ん?どこが分からないのですか? あなたの実際のマクロが不明なのですが、あなたが見つけた過去ログのコードの核心部分は、要するに -------抜粋 Function GetWebStatus(URL As String) As String Dim WinHttp As Object Set WinHttp = CreateObject("WinHttp.WinHttpRequest.5.1") WinHttp.Open "GET", URL, False WinHttp.send GetWebStatus = WinHttp.Status -------ここまで となっていますよね。 紹介したURLにも、全く同じ構造でサンプルコードが書いてありますよ。 -------URLより抜粋 // Instantiate a WinHttpRequest object. var WinHttpReq = new ActiveXObject("WinHttp.WinHttpRequest.5.1"); // Set time-outs. If time-outs are set, they must // be set before open. WinHttpReq.SetTimeouts(30000, 30000, 30000, 30000); ←ここが追加 // Initialize an HTTP request. WinHttpReq.Open("GET", "http://www.microsoft.com", false); // Send the HTTP request. WinHttpReq.Send(); -------ここまで 「ここが追加」のところを、あなたの実際のコードやヤリタイ事に合わせて実装するってことです。
- keithin
- ベストアンサー率66% (5278/7941)
settimeoutsを設定してみます。 参考: http://msdn.microsoft.com/en-us/library/aa384061(v=vs.85).aspx
補足
settimeoutsっていうのがあるんですね、ありがとうございます。 参考文献がちょっと難しく・・・ 実装方法を教えていただきたいのですが・・・ よろしければお願いいたします。