• ベストアンサー

ExcelのVBAでHTMLのタグ数を取得するには

VBAでHTMLソースからタグ指定で情報を取得したいのですが、そのページ内にある特定のタグ数を取得する方法で躓いています。 例えば、下記のURLの"TD"のtagNameから情報を抜き出しているのですが、他のページでは"TD"タグ数が変わってきます。ループ条件で"TD"のタグ数が必要なので、数を取得して変数として代入したいのですが、どうすれば良いでしょうか。ちなみに下のサイトの"TD"の数は71個です。 http://db.netkeiba.com/horse/ped/2010110097/

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

  • ベストアンサー
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

objIE.document.getElementsByTagName("td").Length で得られます。 引数で使う場合、開始値は0からです。 1番目のTDタグは objIE.document.getElementsByTagName("td")(0) というようになります。

Excel401
質問者

お礼

やりたい事ができました。ありがとうございましたm(_ _)m

関連するQ&A

  • 複数タグ指定してHTMLを取得したい

    VBAでMSHTML.HTMLDocumentを使用してWEB上から指定したタグ内のテキストを取得しようとしているのですが、取得したいデータがタグが複数に分かれています。 divの特定クラス内だけなど取得したいのですが、データ1は<h1>データ2は<td>や<p>など、getElementsByTagName(tag)だと、一つしかタグを指定きず、個別に取得するとデータ1とデータ2の関連がバラバラになってしまう為、複数タグを指定して取得できる方法を探しています。 イメージとしてはgetElementsByTagName(tag).Lengthが10の時にh1のタグを発見してそこからh1のinnerTextとtdタグ2つ分のinnerText取得して、またh1タグを発見するまでループして取得するような形に出来ればと思っています。 自作する以外ないのでしょうか?

    • ベストアンサー
    • HTML
  • webbrowserで特定のタグを取得したい

    VB6もしくはVBAです。 HTMLの中をループしてタグを取得しています。 For Each myTag In myIE.Document.all.tags("TD") 次のようなHTMLがあって"このTD"に含まれるAタグを取得したい場合、 指定のTD内だけでループしてAタグを取得するにはどうしたらいいのでしょうか? <table width="200" border="1"> <tr> <td><a href="#">AAAAA</a><a href="#">AAAAA</a><a href="#">AAAAA</a></td> 'このTD <td><a href="#">BBBBB</a><a href="#">BBBBB</a><a href="#">BBBBB</a></td> <td><a href="#">CCCCC</a><a href="#">CCCCC</a><a href="#">CCCCC</a></td> </tr> <tr> <td>DDDDD</td> <td>EEEEE</td> <td>FFFFF</td> </tr> <tr> <td>GGGGG</td> <td>HHHHH</td> <td>IIIII</td> </tr> </table>

  • VBAのパス取得について

    VBAで実行した場所の、下記のパスを取得し C:\aa\bb aaの部分だけを取り出し変数に代入したいです。 どのようにすればaaの部分だけ取得できるでしょうか?

  • HTMLでのTableタグデータ取得方法

    Java素人なので、チョット教えて下さい。 HTML表記で書かれたTableタグ(特にTDタグ)内の情報を取得したいのですが 今はsubstringとか使って、<TD>タグ内の情報をコツコツ取得しています。 ここらへんを一気に取得できるAPI関数はないでしょうか? JavaAPIDocを参照しているのですが、いまいち慣れてないて見つけられません。 よろしくお願いします。

    • ベストアンサー
    • Java
  • VBA:HTML から文字列を取得したい

    エクセルのVBAを使ってHTMLの操作をしようとしています。 実際のHTMLではなくて恐縮ですが、以下のようなテーブルがあります。 <tr class="hoge"> <td>ABC</td> <td>fuga</td> <td>piyo</td> <td>テキスト:いろは</td> <td>hogehoge</td> </tr> 四つ目のtd要素に含まれている文字列「いろは」で、目的のtr要素を特定し(「いろは」はHTML中一回しか使われません)、一つ目のtd要素にある「ABC」を取得して変数に収め、利用したいと考えています。 このクラス名「hoge」を用いたtr要素は複数あって、かつその並び順は新しいデータの更新・追加に従って変わるので、添え番で指定することが出来ません。 このとき、GetElementsByClassName でクラス名「hoge」のエレメントコレクションを取得するところまでは判りますが、その後どういった処理を行えば希望する結果が得られるか思いつきません。 どういう方法を使えばよいか、なんらかヒントをご教示頂ければ助かります。 なにとぞよろしくお願い致しますm(__)m

  • ExcelのVBAで行番号の数値を取得する方法

    ExcelのVBAで行番号の数値のみを取得する方法を教えて下さい。 (例) アクティブセルが「A55」の場合 ↓ 「55」という数字のみを変数に代入 よろしくお願いします。

  • VBAでHTMLからテキストを抜き出す処理

    ネットで調べて見様見真似で下記のコードを作成しました。HTMLからテキストを抜き出す処理をしています。(VBAのツール→参照設定で、Microsoft Internet Controls と Microsoft HTML Object Library にチェックを入れています。) すると上の画像のように、2行以上ある場所が一つのセル内に改行されて挿入されます。それを下の画像のように、1行ずつセル分けしたいのです。VBAは初心者なので、どうかアドバイス頂けないでしょうかm(_ _)m ちなみに、URLは一つの例に過ぎず、A列が3行だったり5行だったりもします。ただ、A列の抜き値は最大でも16行、B列は8行、C列は4行、D列は2行、E列は1行という法則なので、それにも対応できるようにしたいです。 Sub dom() Dim ie As InternetExplorer Dim i As Long Set ie = CreateObject("internetExplorer.Application") ie.Visible = True ie.Navigate "http://db.netkeiba.com/horse/ped/2009105009/" Do While ie.Busy Or ie.ReadyState < READYSTATE_COMPLETE DoEvents Loop Dim htdoc As HTMLDocument Set htdoc = ie.Document For i = 0 To 4 Cells(2, i + 1) = htdoc.getElementsByTagName("TD")(i).innerText Next End Sub

  • PHP変数にタグ内容を代入するには?

    ただの文字列であれば $html = "aaa"; で $html という変数に「 aaa 」という文字列を代入できますが… $html という変数に 「 <td width="410"><?=$aaa;?></td> 」 というタグ内容の文字列を代入する場合にはどうすれば良いんでしょうか? ちなみに、$aaa には代入された文字列を表示します。 中途半端な知識で対応できず苦しんでおります。 どなたかご存知でしたら、詳しく教えて頂けたら助かります。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • VBAのInstrについて

    webページのソースコードを変数に代入し、 その中から<td class="abc">という文字列の位置を取得したいので hogehoge = Instr(baf,"<td class="abc">")と指定すると""の部分でエラーになってしまいますので ""をutf-8にあらかじめ変換し、%22で囲ってみました hogehoge = Instr(baf,"<td class=%22abc%22>") これでエラーはでませんが、これではソースコードから該当の文字列が探せません。 Instrで指定の文字の位置を取得したいが、その文字列内に「"」が含まれている場合、 どのようにすれば正常に取得できるでしょうか? よろしくお願いします。

  • excel保護シートの値取得

    こんにちは。 いつも、参考にさせて頂いております。 セルにカーソルをあてても、値は入っていないように見えますよね? 変数にセルの値を代入してみたのですが、入っていませんでした。 VBAで、保護されているシートの値は取得できるのでしょうか。 もし、そのように取得できない場合、何か他に方法はありますか? わかる方がいらっしゃいましたら、教えて頂けないでしょうか。 宜しくお願い致します。

専門家に質問してみよう