ループ処理でsetしたobjを無視して同じ物を取得してしまいます・・・
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
Message#1 2017年6月7日(水)18時34分 From: dream5 | 返事 削除 変更 |
まだVBAを始めたばかりで見当違いな質問になっていしまうかもしれませんが、よろしくお願い致します。 sub test() Dim i As Long Dim j As Long Dim docList As HTMLDocument Dim imgURL AS String For i = 0 To objIE.document.getElementsByClassName("A").Length - 1 Set docList = Nothing Set docList = objIE.document.getElementsByClassName("A")(i) Debug.Print docList.outerHTML・・・「1」 For j = 0 To docList.document.getElementsByClassName("a").Length - 1 imgURL = docList.document.getElementsByClassName("a")(j).src・・・「2」 Debug.Print docList.outerHTML・・・「3」 Debug.Print imgURL・・・「4」 ・・・・・・ imgURLの処理 ・・・・・・ Next j Next i end sub 上記のような処理でimgURLを取得して画像の収集処理を行おうと思っているのですが・・・ ページ内にA、A、A・・・・と同じclassNameの<dim>要素があり、各要素の中にa、a、a・・・と<img>要素があります。 一番目のA要素のimgURLは全て取得できるのですが、二番目以降のA要素のimgURLを取得できずに一番目のA要素のimgURLを繰り返し取得してしまいます・・・ 「1」の状態でのでのdocListは二番目以降の要素に正常に移行しています。 「3」の状態のdocListも二番目以降の要素になっているのに「2」で取得しているimgURLは一番目のAの要素内の物になってしまい二番目以降のimgURLを取得することが出来ません・・・ 実際に検索しているのは”食べログ”というサイトです。 下記は適当なワードで検索した結果のぺーじです。 https://tabelog.com/tokyo/rstLst/?vs=1&sa=%E6%9D%B1%E4%BA%AC%E9%83%... 下記は実際の記述の主要箇所の抜粋です。 For i = 0 To objIE.document.getElementsByClassName("list-rst__thumb-list").Length - 1 Set docList = Nothing Set docList = objIE.document.getElementsByClassName("list-rst__thumb-list")(i) For j = 0 To docList.document.getElementsByClassName("js-thumbnail-img js-cassette-img lazy-loaded").Length - 1 imgURL = docList.document.getElementsByClassName("js-thumbnail-img js-cassette-img lazy-loaded")(j).src 質問自体が長くなってしまって申し訳ありません。 詳しい方のご教示をお願い致します。 |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降