Collectionの使い方について教えてください
未読分:2件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
Message#2 2017年5月24日(水)13時05分 From: ジャッカル | 返事 削除 変更 |
sGetData_d = col_d1(1)..href に..が2つ入っているよ。 あとhrefはaタグとかのプロパティだからclassじゃ抜けないんじゃないかな? > エクセルVBAでWEBページからデータを取得するコードを書いています。 > そこで教えていただきたいのですが、Collectionの中にCollectionを書く > やり方を教えていただけないでしょうか。 > > 例えば > > <div class=""AA""> > <div> > <span class=""A11""> > <a class=""A11_1"" href="" (URL1) "">テキスト1</a> > </span> > </div> > <div> > <div> > <span class=""A12_1""></span> > <span class=""A12_2""></span> > <span class=""A12_3"">テキスト2</span> > </div> > </div> > <div> > <div class=""A13""> > <li class=""A13_1""> > <li class=""A13_B""> > <span class=""A13_B1"">テキスト3</span> > <a class=""A13_B2"" href="" (URL2) "">テキスト4</a> > </li> > </li> > </div> > </div> > </div> > <div class=""AA""> > ‥‥‥‥‥‥‥‥ > </div> > <div class=""AA""> > ‥‥‥‥‥‥‥‥ > </div> > > このようなHTMLがあった時に、 > URL1 > テキスト2 > テキスト3 > URL2 > の4つのデータを取りたいのです。 > > Dim htmlDoc As HTMLDocument > Dim elList_d As IHTMLElement > Dim col_d As IHTMLElementCollection > Dim sGetData As String > > Set htmlDoc = objIE.document > Set elList_d = htmlDoc.getElementsByClassName("AA")(0) > Set col_d = elList_d.Children > > 'URL1 > sGetData_d = col_d(0).getElementsByClassName("A11_1")(0).href > 'テキスト2 > sGetData_d = col_d(1).getElementsByClassName("A12_3")(0).innerText > > まではできたのですが、テキスト3とURL2を取得するためにcol_d(2)の中を > Collectionを使って取り出したいと思います。 > > Dim elList_d1 As IHTMLElement > Dim col_d1 As IHTMLElementCollection > > Set elList_d1 = col_d(2).getElementsByClassName("A13")(0) > Set col_d1 = elList_d.Children > > 'テキスト3 > sGetData_d = col_d1(0).innerText > 'URL1 > sGetData_d = col_d1(1)..href > > と実行すると、col_d1が空になります。 > > Set elList_d1 = 〜 の構文が間違っているようですが、 > よろしくお願いします。 |
Message#1 2017年5月12日(金)18時39分 From: 清水 透 | 返事 削除 変更 |
エクセルVBAでWEBページからデータを取得するコードを書いています。 そこで教えていただきたいのですが、Collectionの中にCollectionを書く やり方を教えていただけないでしょうか。 例えば <div class=""AA""> <div> <span class=""A11""> <a class=""A11_1"" href="" (URL1) "">テキスト1</a> </span> </div> <div> <div> <span class=""A12_1""></span> <span class=""A12_2""></span> <span class=""A12_3"">テキスト2</span> </div> </div> <div> <div class=""A13""> <li class=""A13_1""> <li class=""A13_B""> <span class=""A13_B1"">テキスト3</span> <a class=""A13_B2"" href="" (URL2) "">テキスト4</a> </li> </li> </div> </div> </div> <div class=""AA""> ‥‥‥‥‥‥‥‥ </div> <div class=""AA""> ‥‥‥‥‥‥‥‥ </div> このようなHTMLがあった時に、 URL1 テキスト2 テキスト3 URL2 の4つのデータを取りたいのです。 Dim htmlDoc As HTMLDocument Dim elList_d As IHTMLElement Dim col_d As IHTMLElementCollection Dim sGetData As String Set htmlDoc = objIE.document Set elList_d = htmlDoc.getElementsByClassName("AA")(0) Set col_d = elList_d.Children 'URL1 sGetData_d = col_d(0).getElementsByClassName("A11_1")(0).href 'テキスト2 sGetData_d = col_d(1).getElementsByClassName("A12_3")(0).innerText まではできたのですが、テキスト3とURL2を取得するためにcol_d(2)の中を Collectionを使って取り出したいと思います。 Dim elList_d1 As IHTMLElement Dim col_d1 As IHTMLElementCollection Set elList_d1 = col_d(2).getElementsByClassName("A13")(0) Set col_d1 = elList_d.Children 'テキスト3 sGetData_d = col_d1(0).innerText 'URL1 sGetData_d = col_d1(1)..href と実行すると、col_d1が空になります。 Set elList_d1 = 〜 の構文が間違っているようですが、 よろしくお願いします。 |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降