• ベストアンサー

エクセルVBAでwebのソースコードを検索&取得

webページのソースコードを検索して、検索した文字列に続く3文字を取得したいです webページのソースコードが下記だと仮定します (ソースコード)   AAA   ABC***   BBB   CCCAAA ABC という文字列を検索して、***という変数を取得したいです ***の部分は毎回変わる、英数字のランダムな文字です 説明が下手で申し訳ありません どの様に取得すればよいかわかりません どうぞよろしくお願い申し上げます

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

  • ベストアンサー
noname#212058
noname#212058
回答No.2

回答No.1 です。 色々と仕様が不明ですが、以下の前提で組んでみました。 ・Webページのアクセスには InternetExplorer.Application  を使用している ・取得したい文字列は BODY 要素内に存在する ・取得したい文字列は、検索文字列 "ABC" から行末(改行)  までである。 -------------------------------------------------------- ' IE の準備 Dim objIE As Object Set objIE = CreateObject("InternetExplorer.Application") ' Webページのアクセス処理は紙面の都合で省略 ' Webページへのアクセスが完了したら、BODY 要素内のソースを取得する Dim sourceBody As String sourceBody = objIE.Document.body.OuterHtml ' 取得したソースを改行で区切って配列にする Dim lines() As String ' 改行コードを LF に揃える sourceBody = Replace(sourceBody, vbCrLf, vbLf) sourceBody = Replace(sourceBody, vbCr, vbLf) ' 改行コード LF で区切って配列にする sourceLines = Split(sourceBody, vbLf) ' 検索する文字列(ABC)を含む行を検索 Dim lineNo As Integer Dim position As Integer For lineNo = 0 To UBound(sourceLines)  ' 検索文字列 ABC を探す  position = InStr(sourceLines(lineNo), "ABC")  If position > 0 Then   ' 検索文字列の後ろの文字列を取得して、メッセージボックスに表示   MsgBox (Mid$(sourceLines(lineNo), position + Len("ABC")))  End If Next

mono444
質問者

お礼

ありがとうございました 思い通りの結果を得ることができました プログラムの意味がまだ理解できてませんが、ひとつひとつ理解していきたいと思います

その他の回答 (1)

noname#212058
noname#212058
回答No.1

質問内容はどちらでしょうか。  A. Webページのソースは取得できているが、ABC を検索    して *** の部分を取得する方法が判らない  B. VBA で Webページにアクセスするところから全く分か    らない。 B である場合は、『Webページにアクセスするところ』までは Google で 「EXCEL VBA Internet Explorer」あたりを検索 条件にして自分で調べてください。サンプルコードがたくさん 見つかります。

mono444
質問者

補足

説明不足で申し訳ありません webページのソースの取得まではネットで調べて出来ました A.*** の部分を取得する方法がわかりません