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

VBAを使ってHTMLソースから特定の文字を抽出

このQ&Aのポイント
  • VBAを使用してHTMLソースから指定の文字を抽出する方法を教えてください。
  • ExcelでVBAを使って特定のサイトからHTMLソース内のURL情報を取得する方法についてアドバイスをお願いします。
  • 複数のサイトからHTMLソース内のURLデータを取得し、表示したいのですが、ページ移動時に問題が発生しています。アドバイスをいただけないでしょうか?

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

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

前のご質問に回答した者ですが、他のサイトは見に行かない主義なので、外していたら悪しからず。という事で前回のURLを載せておきます。 http://okwave.jp/qa/q8648361.html ループ変数を使うのが面倒くさいというものぐさ(死語?)コードです。 A列に年月?、B列にHyperlink先を入れています。 'Microsoft Internet Control 'Microsoft HTML Object Library 'に参照設定 Sub test() Dim ie As InternetExplorer Dim doc As IHTMLDocument Dim docPart As IHTMLDocument Dim chNode As IHTMLElement Dim chNodes As IHTMLElementCollection Dim chNodes1 As IHTMLElementCollection Dim dateArray As Variant, myDate As Variant Dim myCell As Range Const urlSeed As String = "http://www.nankankeiba.com/calendar/myDate.do" dateArray = Array("201204", "201210") Set myCell = ThisWorkbook.Sheets("Sheet1").Range("A1") For Each myDate In dateArray Set ie = CreateObject("InternetExplorer.Application") With ie .navigate Replace(urlSeed, "myDate", myDate) While .Busy Or .readyState <> 4: DoEvents: Wend End With Set doc = ie.document Set chNodes = doc.getElementsByTagName("EM") Application.ScreenUpdating = False For Each chNode In chNodes Set docPart = New HTMLDocument docPart.write chNode.outerHTML Set chNodes1 = docPart.getElementsByTagName("A") myCell.Value = myDate myCell.Offset(0, 1).Value = Replace(chNodes1(0).href, "about:", "") Set myCell = myCell.Offset(1, 0) Next chNode ie.Quit Next myDate Application.ScreenUpdating = True End Sub

Excel401
質問者

お礼

mitarashiさん回答ありがとうございます。前回に引き続きお世話になりますm(_ _)m 独学でVBAの勉強し始めたばかりなので、Replace関数での置換や、配列の要素でループするなどは勉強になりました。

関連するQ&A