エクセルでメタタグを抽出するには?
すいません、前回質問した者です。
前回の質問では・・・
エクセルシートのB列にURLが並んでいるとして、VBAを使って、C列には「description」D列には「keywords」を抽出したいという質問をしたのですが、参考になる回答がなかったのでもう一度質問します。
以前、私が教えてもらったのは、B列にURLが並んでいて、A列にタイトルを抽出させたものでした。
それが以下になります。
Public Sub ReadTitle()
Dim url As Range
Dim Http, buf As String
Set Http = CreateObject("MSXML2.XMLHTTP")
Set url = Range("B1")
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
このような感じでB列にはURLの一覧があるとして、A列にタイトル、C列にdescription D列にkeywordsが抽出できればいいなと考えています。
ちなみに、私にはVBAの知識がまったくありません。とりあず、これだけ出来れば、すごく助かるのですが、どなたか教えていただけないでしょうか?
よろしくお願いします!
補足
回答ありがとうございます。 >1.頑張れ! >2.なんとかなる! それもそうかもしれませんが、わかならないので質問をしています。