excel vbaで、数百のページから自動でtableを取得してセルに値を入れるプログラムを作成しようとしているのですが、どのようにすればよいか思い浮かびません。
追記:
mts10806様
取得するサイトは他者様のサイトになります。もちろん許可はとってあります。
TanakaHiroaki
以前一度参考にさせていただいたサイトでしたが、もう一度一通り見てきました。
・1つのページ内に複数のテーブルがある。
・tableにはid属性は無し
・ページによってあるテーブルないテーブルがある。
以上の条件で(条件は現段階ではあまり関係ないですが)、まずは2つ目のテーブルを取得して一つ目のtrの値を表示してみようとしたのですが、「For Each el In colTable.Item(1)」の部分でエラーがでます。itemを省略して、「「For Each el In colTable(1)」」でもダメでした。colTableの中に全てのテーブルが入っており、itemで指定できそうだったので公式サイトを参考に記述してみたのですが、構文がおかしいでしょうか?
エラー内容は、「実行時エラー'438':オブジェクトは、このプロパティまたはメソッドをサポートしていません。」です。
追記2:
落ち着いて考えてみたら、下記コードの場合、「el」には一つずつtable要素が入っていくことになりますよね。
ということは、(1)などと指定しなくてもよく、後はそれぞれのtableに対しての処理を書いていけばよさそうですね。
vba
1Dim colTable, colTr As IHTMLElementCollection 'IHTMLエレメントコレクションを準備 2Set colTable = htmlDoc.getElementsByTagName("table") 'HTMLドキュメント内のtable要素をコレクションとしてGet 3 4Dim el As IHTMLElement 5For Each el In colTable.Item(1) 6 Set colTr = el.getElementsByTagName("tr") 7 Debug.Print colTr(0).innerText 8Next el

回答1件
あなたの回答
tips
プレビュー