私は、VBAでJavaScriptによって生成されたHTML要素をターゲティングできるようにする手法について、Googleの検出作業(StackOverflowの検索を含む)を数時間行っています。
例として、私はこれにie.Document.getElementById(id)を使用できません: http ://www.kisfutures.com/electronic.html?page = quote&sym = NGU12&mode = i
ただし、google.comでテストされているように、このメソッドは静的ページ上の要素を見つけることができます。
Document.bodyからすべてのInnerTextを取得し、ファイルを解析して目的のTD値を取得するだけで遊んだのですが、異なる行にある2つの値を分割しようとすると障害が発生しました。例として、Split(..)は次のことを「2040」と理解しました。
20
40
私が理解していることから、getElementById(id)の問題は、ページの読み込み後にWebサイトのテーブルがJavaScriptによって生成されるため、そのJavaScriptによって作成された要素をVBAコードの対象にできないことです。とにかく私のVBAコードにこのJavaScriptで生成されたコンテンツを表示させることはできますか?
ご協力ありがとうございました!
編集
使用されているVBAコード:
Function Quote(Market, Parameter)
Set ie = CreateObject("InternetExplorer.Application")
ie.Navigate "http://www.kisfutures.com/electronic.html?page=quote&sym=NGU12&mode=i"
While ie.Busy
DoEvents
Wend
Dim id As String
id = "dt1_" & Market & "_" & StrConv(Parameter, vbLowerCase)
Quote = ie.Document.getElementByID(id).InnerText
ie.Quit
End Function
基本的に、Marketの列ヘッダーを使用してHTML要素IDを作成しようとしています。したがって、たとえば、市場が「NGU12」で、列ヘッダーが「Open」の場合、構築されるIDは「dt1_NGU12_open」です。これは、市場NGU12の「Open」値を含むTD要素のIDです。