• ベストアンサー

EXCEL VBAでたくさんのURLの一覧からHTTPレスポンスコードを取得したい。

Wendy02の回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは 私はやったことがないですが、そういえば、Webサイトのあるなしを、Status で取得方法があるのだなって、言われて思い出しました。しかし、私が最初に考えたものは、#1さんとほぼイメージとしては同じなのですが、少し工夫をしてみました。 '------------------------------------------- 'Option Explicit Dim objHTTP As Object 'モジュールの上部に置く Sub CheckURL()   Dim ret As Variant   Dim c As Range   On Error GoTo ErrHandler   If objHTTP Is Nothing Then     Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")   End If      For Each c In Range("A1", Range("A2000").End(xlUp))     If StrConv(c.Value, vbLowerCase) Like "http://*" Then       c.Offset(, 1).Value = GetHttpHeader(c.Value)     End If   Next ErrHandler:   If Err.Number > 0 Then    MsgBox Err.Number & " : " & Err.Description   End If   Set objHTTP = Nothing End Sub Function GetHttpHeader(ByVal strURL As String) Dim ret As Variant   ret = Empty   On Error Resume Next   objHTTP.Open "GET", strURL, False   objHTTP.Send    ret = objHTTP.Status   On Error GoTo 0   If ret <> 0 Then    GetHttpHeader = ret   End If End Function

fuyuhiko
質問者

お礼

>fuyuhikoさん ご回答有難うございます。 まだ、レベルが低くてすんなりと違いを認識できていませんが 問題なく、解決できました! 有難うございます。

関連するQ&A

  • VBAでHTTPレスポンスコード取得

    EXCEL VBAで下記の質問、URLリストからHTTPレスポンスコードを取得したいと考えております。 EXCEL VBAでたくさんのURLの一覧からHTTPレスポンスコードを取得したい。 http://okwave.jp/qa/q5474619.html のBAを使用して取得を行ってるのですが、 サーバーのレスポンスが遅い際に、一定の秒数(120秒程度?)が経って 反応がない場合は、スキップしたいのですが組み込み方がどうしてもわかりません。 ご教授いただけると幸いです。

  • Excel VBAのコード

    こんにちは。 現在VBAの操作を学習中ですが、思ったように進まず困っています。 次のことを行うには、どのように記述したら良いでしょうか? <やりたいこと>  ・Book1にデータ表があり、ヘッダーから“hoge”という列を見つける  ・“hoge”列を先頭にして、Book2の指定範囲へコピーする できれば、サンプルコードをご記入いただけると助かります! よろしくお願いします。

  • 商品コード一覧表をエクセルVBAで作成したいのです

    「商品コード一覧表」の作成を自動でしたいのです。 商品は6面の箱状のものです。(ルービックキューブみたいなものです。) 各面の色を自由に選択できるようになっています。 色は4種から選べるのですが、各面ごとに選べる色は異なっています。 たとえば・・・ 6面をそれぞれA面、B面・・・F面として、色の選択方法は以下のようになります。 A面はA1~A4の4色から1つを選択 B面はB1~B4の4色から1つを選択 C面はC1~C4の4色から1つを選択 ・ ・ F面はF1~F4の4色から1つを選択 このようにA面からF面まで、1つずつ色を選択して商品コードを作成します。 作成する商品コードは色を6つ横に並べた形になります。 (例1) 「A1B1C1D1E1F1」 (例2) 「A1B2C1D3E4F2」 (例3) 「A4B1C3D2E1F4」 商品コードのパターンは、各面4色ずつ選べるので、 4×4×4×4×4×4=4096 となります。 全部でパターンは4096通りあるのですが、 商品として製造するのは、このうち400~500種になります。 全体からすると、約1割程度のパターンを使って製造するのですが、 抽出方法に決まりがある訳では無く、適当にランダムに選び出します。 400個の商品コードを400行のテキストデータにして、 商品コード一覧(1つのファイル)として作成し、保存する。 これまで、これらの作業をエクセルを使ってせっせと作成していました。 最近になって本屋でエクセルVBAなるものを知り、自分でやろうと頑張ってみたのですが、 どうも、思うようなものを作ることができません。 VBAを使って自動でしたい内容は以下の点です。 1)作成する「商品コード一覧」の保存ファイル名を任意に設定できるようにする。  ・エクセルシートの(A1)セルに任意に入力(手作業で) 2)色のコードはあらかじめセル(4種×6面で24個のセル)に入力しておく(手作業で)  ・エクセルシートのA列に、たてに24個を入力  ・セル( A3~ A6)にA面の色コード  ・セル( A8~A11)にB面の色コード  ・セル(A13~A16)にC面の色コード  ・セル(A18~A21)にD面の色コード  ・セル(A23~A26)にE面の色コード  ・セル(A28~A31)にF面の色コード 3)作成する商品コードの「数」を指定する  ・基本的に400ですが、任意の数値を指定できるようにする  ・作成する数を400にしても500にしても、どの色コードも平均的に使用するようにしたい 4)「商品コード一覧」をテキストデータで保存する  ※商品コードごとに改行する(400個にした場合、400行のテキストデータ) 5)テキストデータの形    保存ファイル名,商品コード1    保存ファイル名,商品コード2    保存ファイル名,商品コード3    保存ファイル名,商品コード4     ・     ・    保存ファイル名,商品コード400  ※各行の先頭には「保存ファイル名」←セル(A1)に入力したもの   ↑どの行にも同じ「保存ファイル名」を入れる  ※保存ファイル名を商品コードの間にカンマを入れる 以上、よろしくお願い申し上げます。

  • エクセルVBAでセル選択

    エクセル2000でリストを作成し、VBAで編集しようとしています。 A列に入力されているコードの先頭に「’」をつけて文字列とするための関数をB2のセルからA列のデータが入力されている最後のセルの隣までコピーしたいと思っています。 A列の最終セルを取得するVBAは分かったのですが、その値をB列の選択範囲として使用する方法がわかりません。 エクセルVBAは全くの初心者です。 どなたか教えてください!

  • ExcelのVBAで ホームページのソースコード

    vExcelのVBAで ホームページのソースコード一部分をぬきたいのですが、わかるかたおしえてください。 http://onlinestore.barneys.co.jp/html/item/001/049/item48187.html こちらのサイトのZOOMUPした時の画像のURLを取得したいのです。 A列には、URL でB列にはその画像URLを自動で取得というかんじです。 わかるかた教えていただけないでしょうか。

  • この業務をExcel VBAでどう組めばよいですか

    ご覧頂きありがとうございます。 現在アビバでExcel VBAを学んでいますが、多少はコードが読めたり弄ったりできるようになりましたが、1からロジックを組んで書き上げる事はまだ到底できそうにありません。。。 添付の画像を基に 下記の作業をどなたか回答例を書いて頂けませんか>< お願いします! ---------------------------- 1. (1).xlsmのA3セルの値が(2).xlsmのA列に無いか 上から順番に調べ、”最初に合致した箇所”を調べる →合致する値がある時 ・それぞれのB列(チェック)に 〇 を記入 ・(1).xlsmと(2).xlsmのSheet2に、それぞれ 〇 を記入した”行すべて”の値を張り付ける →合致する値がない時 ・次の行へ移動する((1).xlsmのA3→A4) 2. 順番1. をA列の一番下の行までデータがなくなるまで繰り返す 3. (1).xlsmと(2).xlsmのSheet3に、それぞれ 〇 が記入されていない”行すべて”の値を張り付ける (サンプル) (1).xlsm A品番 395011500033920 220680700001422 241670200000110 348646464554646 395011500033920 167311400021200 (2).xlsm B品番 167311400021200 395011500033920 220680700001422 241670200000110 167311400021200 241670200000110 ---------------------------- 分かりづらいところがあれば補足いたします、 お力添えください><

  • Excel VBA セル内の文字列操作について

    例えば、A列(A2より下のセル)のセル内にある文字列が、それぞれ対応するB列(B2より下のセル)のセル内にあった場合、該当文字列のフォントの色を変えたい(例えば「赤」)のですが、VBAで一括処理とかできるのでしょうか? <例> A列      B列 テスト     このテストは・・・ → 「テスト」の部分のみ赤色にしたい。 サンプル   サンプル     → 文字列全部分の「サンプル」を赤色にしたい。 どうかご教示の程よろしくお願いいたします。

  • エクセルVBAのコードの書き方を教えてください

    エクセルVBAの初心者です。 下記①-⑲のようなコードを書きたいのですが、どなたかお分かりになる方がいましたら、 ご教示いただけますと幸いです。 ① オートフィルターでシート[list]のA列に"●"がある特定の行だけを以下作業の対象にしたい ② ①で特定した行のE列セルの値を、シート[output]のB9セルにコピペする ③ ①で特定した行のF列セルの値を、シート[output]のB12セルにコピペする ④ ①で特定した行のG列セルの値を、シート[output]のB15セルにコピペする ⑤ ①で特定した行のH列セルの値を、シート[output]のB18セルにコピペする ⑥ ①で特定した行のI列セルの値を、シート[output]のB21セルにコピペする ⑦ ①で特定した行のJ列セルの値を、シート[output]のB24セルにコピペする ⑧ ①で特定した行のK列セルの値を、シート[output]のB27セルにコピペする ⑨ ①で特定した行のL列セルの値を、シート[output]のB30セルにコピペする ⑩ ①で特定した行のM列セルの値を、シート[output]のB33セルにコピペする ⑪ ①で特定した行のN列セルの値を、シート[output]のB36セルにコピペする ⑫ ①で特定した行のO列セルの値を、シート[output]のB39セルにコピペする ⑬ ①で特定した行のP列セルの値を、シート[output]のB42セルにコピペする ⑭ ①で特定した行のQ列セルの値を、シート[output]のB45セルにコピペする ⑮ ①で特定した行のR列セルの値を、シート[output]のB48セルにコピペする ⑯ ①で特定した行のS列セルの値を、シート[output]のB51セルにコピペする ⑰ ①で特定した行のT列セルの値を、シート[output]のB54セルにコピペする ⑱ ①で特定した行のU列セルの値を、シート[output]のB57セルにコピペする ⑲ シート[output]のB3:B59をテキストファイルを呼び出してコピペする ※このとき、上記②-⑱で記述したB9からB57のセルには改行が含まれる場合が  あるため、テキストファイルへのペースト時に""が表示されてしまうが、  もし可能であれば、この""が表示されないようにしたい。

  • Excel VBAについて

    プログラミング初心者です。 Excelのデータを、VBAをつかって、テキストファイルにおとすよう指示されました。しかし、いまいちやり方がわかりません。 いろいろサイトを調べてみましたがよくわからなかったです。 どういうふうにコード入力していけばいいのでしょうか? ご存知のかた教えてください。 基本的な構文はわかりますのでサンプルを教えていただきたいです。 また、わかりやすい参照URLがあればそれでも結構です。

  • VBAで文字コードを取り出したい

    セルに取り込んだ文字列にスペースが含まれ、VBAの" "で読まれません。関数で=CODE(B1)により取り込むと文字コード160です。 VBAで文字コード160で識別したいのですが、chr()などを試してエラーになります。 セル内の文字からmidで取り出したスペース(コード160)を、コード番号で識別してifを使って排除したいのですが、素人ですので、マクロがうまく作れません。 混乱していますが、よろしくお願いします。