VBA IE操作 Classタグ読み取り、途中終了方法 Excel2003、VBAで組んでます。
未読分:2件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
Message#2 2014年11月29日(土)06時34分 From: ミラコビッチ | 返事 削除 変更 |
コードの内容からすると、1番目のTABLEタグ内のTRタグを順番に取り出し、その中のTDタグに対して処理を行なっているようですが、TRタグの中に、確実にTDタグはあるのでしょうか。 ソースURLが分からないので判断できないのですが、エラーが出る以上、TDタグがない場合があると考えるのが自然です。HTMLコードを見直してみてください。ソースURLを教えていただければ、当方でも確認が可能です。 |
Message#1 2014年11月28日(金)19時37分 From: vba_vba | 返事 削除 変更 |
VBA IE操作 Classタグ読み取り、途中終了方法 Excel2003、VBAで組んでます。 IEを操作し、指定のClaas名のもののみを抽出しようとしております。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1113876504... 現在は抽出作業までできましたが、 途中でエラーが出てしまい、どうすれば上手く進められるのか分からないので 質問させて頂きました。 Forループの中は、1周目はOK 2週目OK 3週目で躓く? みたいです。 For i = 1 To Maxrow Call IE_OPEN_NEXT(.Range("C" & i)) Set doc = ie.document For Each tr In doc.getElementsByTagName("table")(0).getElementsByTagName("tr") Set tds = tr.getElementsByTagName("td") Dim ClassNameData MaxColumn = .Cells(i, Columns.Count).End(xlToLeft).Column + 1 On Error GoTo Endding If Not IsNull(tds.Item(0).getAttribute("class")) Then ClassNameData = tds.Item(0).getAttribute("class") If ClassNameData = "menu" Or ClassNameData = "setting" Then .Cells(i, MaxColumn) = Trim(tds(0).innerText) & " " & Trim(tds(1).innerText) .Cells(i, MaxColumn + 1) = Trim(tds(2).innerText) & " " & Trim(tds(3).innerText) End If End If Next このような書き方にしたのですが、 2週目にて必ずWithがどうのっていうエラーが出て上手く行きません。 (オブジェクト変数またはWithブロック変数が設定されてません)と出ます。 If Not IsNull(tds.Item(0).getAttribute("class")) Then でエラーが出ます。 止まったときにローカル?を見てみると tds には item が1つもありませんでした。 開いているページのデータ構成は、変わらないものです。 回答よろしくお願い致します。 |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降