• 締切済み

URLからタイトルを取得したい!

エクセルのA列にはURLがずらっとあり、B列にタイトル取得を考えています。 そこで、他の質問者さんのコードを試しました。 その結果、普通のサイトでは問題なく取得できたのですが、 アメーバーブログなどの無料ブログでは、途中で止まってエラーとなってしまうようです。 どこかいけないのでしょうか? Public Sub ReadTitle() Dim url As Range Dim Http, buf As String Set Http = CreateObject("MSXML2.XMLHTTP") Set url = Range("A1") Do While (url.Value <> "") Http.Open "GET", url.Value, False Http.Send buf = StrConv(Http.ResponseBody, vbUnicode) 'msgbox buf url.Offset(0, 1).Value = getTitle(buf) Set url = url.Offset(1, 0) Loop Set Http = Nothing End Sub Private Function getTitle(buf As String) As String Dim pos1 As Long, pos2 As Long pos1 = InStr(1, buf, "<title>") If pos1 = 0 Then pos1 = InStr(1, buf, "<TITLE>") If pos1 = 0 Then getTitle = "" Exit Function Else pos2 = InStr(pos1 + 7, buf, "</TITLE>") End If Else pos2 = InStr(pos1 + 7, buf, "</title>") End If getTitle = Mid(buf, pos1 + 7, pos2 - pos1 - 7) End Function

みんなの回答

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1

アメブロはUTF-8なので buf = StrConv(Http.ResponseBody, vbUnicode) が駄目。 解決策 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1130785456

siraku
質問者

補足

回答ありがとうございます。 今、試してみたのですが、どうも自分では、上手くできません。 申し訳ないのですが、具体的にコードを書いていただけないでしょうか? よろしくお願いします。

関連するQ&A