• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAを使ってHTMLソースから特定の文字列を抽出したいと思っています)

VBAを使ってHTMLソースから特定の文字列を抽出する方法

このQ&Aのポイント
  • VBAを使用してHTMLソースから特定の文字列を抽出する方法を教えてください。
  • 正規表現を使ってタグに挟まれた文字列を抽出したいですが、うまくいかないです。
  • どのような正規表現を使えば、特定のパターンの文字列を抽出できるでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.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

chichi2010
質問者

お礼

回答ありがとうございます。 抜き出せればよいので正規表現でなくてもOKです。 別の角度からの回答で大変参考になりました。 正規表現はおろかVBAも初心者ですので学ぶことが多いです。

その他の回答 (1)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

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 参考にはならなかったのかな?

chichi2010
質問者

お礼

回答ありがとうございます。 教えていただいたことを参考に試行錯誤してみたいと思います。

関連するQ&A