- ベストアンサー
フレームを使ってるサイトはタグの取得はできない?
- フレームを使ってるサイトでは、タグの取得ができないのでしょうか?
- VBAでIEを操作していて、サイトにログイン後、imgタグの中にあるaltの値を取得したいのですが、imgタグやtdタグなどがスルーされてしまいます。これはサイトにフレームが使用されているためなのでしょうか?
- フレームを使っているサイトでは、imgタグやtdタグなどを通過することができず、タグの値を取得することができません。ただし、frameタグを使用すると値を取得することができるようです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
例えば、 http://masaboo.cside.com/new_html1/ht_sun/frame02.htm のページでしたら、右側のフレームが <frame src="mainc.htm"> というソースになっていますので、#1さんがお書きの様に objIE.navigate "http://masaboo.cside.com/new_html1/ht_sun/mainc.htm" と、直接に、そのフレームのURLを開いてやれば、フレームの内容、というか、そのページが「objIE」に代入されます。 あるいは、むしろ、こちらの方が簡単かも知れませんが、下記の様に、 Set objFr = objIE.document.Frames.Item(1) というような形で、当該のフレームを、別のオブジェクトに格納してしまえば、objFr が、objIE と同じように扱えます。 例示のページではフレームに名前が付いておりませんが、例えば、 <frame src="menuc.htm" name="hoge"> というように、名前の付いているフレームでしたら、 Set objFr = objIE.document.hoge みたいなことができるかも知れません。 Sub Macro1() Dim myURL As String Dim objIE As Object Dim objFr As Object Dim myLnk As Object myURL = "http://masaboo.cside.com/new_html1/ht_sun/frame02.htm" Set objIE = CreateObject("InternetExplorer.Application") With objIE .navigate myURL While .Busy Or .ReadyState <> 4: DoEvents: Wend Set objFr = .document.Frames.Item(1) With objFr For Each myLnk In .document.getElementsByTagName("a") Debug.Print myLnk.href Next End With .Quit End With Set objIE = Nothing End Sub
その他の回答 (1)
- ORUKA1951
- ベストアンサー率45% (5062/11036)
そのフレームだけを開いて・・
お礼
vbaで、どう操作すればいいでしょうか? 教えてください。
お礼
ありがとうございました。