|    | 
     参考までに、コードの一例を末尾に示します。下敷きにして下さい。 
 
◇-------------- 
>「ページが見つかりません」,「404 Not Found」などを含んでいれば、 
> その文字を返すようなコードは可能でしょうか? 
これはあなたがトライすべきです。 
警告文は定型ではないので、自動的な判断は難しいでしょう。 
 
◇-------------- 
> リンク切れしていた企業URLの正しいURLが存在するならば、 
> D列にURLを書き出す。 
 
Redirectされていれば、status code 3xxを返すので、それで判断可能。 
例外だろうから、移転先は個別に追っていった方が早いかも。 
(Locationヘッダで移転先を返してくるが、XMLHt tpは対応していない。 
 普通にブラウザで開けば、自動で転送先に行くからそれで判る。) 
 
しかし、単に200を示すだけのサイトなら、手の打ちようがない。 
正しいURLを自動で探すといっても無理でしょう。 
そのページのリンクを追っていく方法もあるかもしれないが、 
普通のサイトは、いくらでもそのなかにリンクがあるから、 
移転先リンクなどというものを判断するのは困難と見るのが普通。 
(そういうときは普通、Redirectを使ったページにするでしょう。) 
 
◇-------------- 
コード例です。 
 
Sub test() 
  Dim HReq 
  Dim myStatus As Long 
  Dim uri As String 
  Dim k As Long 
   
  Set HReq = CreateObject("Microsoft.XMLHT TP") 
                ' 半角スペースを取って下さい 
   
  For k = 2 To Range("A2").End(xlDown).Row 
    Debug.Print k 
    uri = Cells(k, 1).Value 
    HReq.Open "GET", uri, False 
    On Error Resume Next 
    HReq.send 
    On Error GoTo 0 
    Cells(k, 2).Value = HReq.Status 
    Cells(k, 3).Value = HReq.statusText 
    If HReq.Status = 200 Then 
      Cells(k, 4).Value = Left(HReq.responseText, 500) 
      Cells(k, 5).Value _ 
      = Left(StrConv(HReq.responseBody, vbUnicode), 500) 
    End If 
  Next 
  Set HReq = Nothing 
End Sub 
 
正規表現かなにかで特定の文字列をマッチさせても良いけれど、 
定型文字列に限らないから、 
シートに書き出して目で確認するのも一法だろう。(字数は調整してください) 
UTF-8のサイトは4列目で読める。 
S-JISのサイトは5列目で読める。 
(EUC-JPはいずれもダメだがご愛敬。AODDB.Streamなどで変換すればよいかも。) 
--------------------------- 
なお、 
指摘があったが、確かに、こんなことにトライする超初心者はあり得ない。 
だからコードに関する質問に答えるつもりはありません。 
回答がつかないのは、超初心者と名乗る意図があざとすぎて、敬遠されているのだろう。 
どこまでできているのか、自分の手の内を示して、堂々と質問すべきでしょう。 
(このような質問文を寄せる超初心者はいないが、万一、真の超初心者なら、 
 もっと適切なテーマに取り組むべきでしょう。) 
 | 
     
    
   |