- ベストアンサー
エクセルVBAでwebのソースコードを検索&取得
webページのソースコードを検索して、検索した文字列に続く3文字を取得したいです webページのソースコードが下記だと仮定します (ソースコード) AAA ABC*** BBB CCCAAA ABC という文字列を検索して、***という変数を取得したいです ***の部分は毎回変わる、英数字のランダムな文字です 説明が下手で申し訳ありません どの様に取得すればよいかわかりません どうぞよろしくお願い申し上げます
- みんなの回答 (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
その他の回答 (1)
質問内容はどちらでしょうか。 A. Webページのソースは取得できているが、ABC を検索 して *** の部分を取得する方法が判らない B. VBA で Webページにアクセスするところから全く分か らない。 B である場合は、『Webページにアクセスするところ』までは Google で 「EXCEL VBA Internet Explorer」あたりを検索 条件にして自分で調べてください。サンプルコードがたくさん 見つかります。
補足
説明不足で申し訳ありません webページのソースの取得まではネットで調べて出来ました A.*** の部分を取得する方法がわかりません
お礼
ありがとうございました 思い通りの結果を得ることができました プログラムの意味がまだ理解できてませんが、ひとつひとつ理解していきたいと思います