- ベストアンサー
VBAを使ってHTMLソースから特定の文字列を抽出する方法
- VBAを使用してHTMLソースから特定の文字列を抽出する方法を教えてください。
- 正規表現を使ってタグに挟まれた文字列を抽出したいですが、うまくいかないです。
- どのような正規表現を使えば、特定のパターンの文字列を抽出できるでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
正規表現による抽出にこだわらないでしたら、 >例えば の答えは、[Links プロパティ] により、 下記のような方法で >タグごと抽出する こともできますし、 >もう少し範囲を絞れば目的の文字列だけを抽出 することもできます。 Sub test() Dim objIE As Object Dim i As Long Set objIE = CreateObject("InternetExplorer.Application") With objIE .navigate "http://www.yahoo.com/" While .Busy Or .ReadyState <> 4: DoEvents: Wend With .Document For i = 0 To .Links.Length - 1 Cells(i + 1, 1) = .Links(i).outerHTML Cells(i + 1, 2) = .Links(i).outerText Next End With End With objIE.Quit Set objIE = Nothing End Sub
その他の回答 (1)
- n-jun
- ベストアンサー率33% (959/2873)
Sub try() Dim myReg As Object Dim st As String Dim match As Object Dim matches As Object Set myReg = CreateObject("VBScript.Regexp") myReg.Pattern = "<[^<]+</\w+>" myReg.Global = True st = "<a href=""△△△"">●●●</a> <div ~=""△△△"">□□□</div>" Set match = myReg.Execute(st) myReg.Pattern = ">(.+)<" For Each matches In match MsgBox matches.Value & vbCrLf & myReg.Execute(matches.Value)(0).Submatches(0) Next Set myReg = Nothing Set match = Nothing End Sub 参考にはならなかったのかな?
お礼
回答ありがとうございます。 教えていただいたことを参考に試行錯誤してみたいと思います。
お礼
回答ありがとうございます。 抜き出せればよいので正規表現でなくてもOKです。 別の角度からの回答で大変参考になりました。 正規表現はおろかVBAも初心者ですので学ぶことが多いです。