http://d.hatena.ne.jp/ken3memo/20120121/1327083218
の
続き。
あっ、間違えた。。。
前回、下記の質問をいただきました。
>下記のコードでホームページの中のiframeを回して「src」に記載してある相対パスの
>絶対パスを知りたいと思い試行錯誤しています。
>
>For Each objITEM In objIE.Document.getElementsByTagName("iframe")
> Debug.Print objITEM.src
>Next
>
>上記コードの場合、相対パスがsrcに設定されている場合の絶対パスが知りたいと考えています。
>デバッグモードでobjITEMの直下に「ie8_src」というプロパティがあり、絶対パスらしきものがあるのですが、
>objITEM.ie8_srcとしてもエラーになってしまい取り出せません。
>何か方法はありますでしょうか?
>
>os xp
>ブラウザ ie8
回答として、聞きたかったのは、
相対パスがsrcに設定されている場合の絶対パスが知りたい
でした。
.srcだと、相対パスのままでした。
追加で探ってみたいと思います。
STOPで止めて、ウォッチリストを活用してみる。
VBA IE操作 STOPで止めてウォッチ式でオブジェクト変数を確認 - YouTube
www.youtube.com
↑STOPで止めてから、
変数を選択、右クリック、ウォッチ式の追加でオブジェクトの中身を見る。
そんな流れで、IEのプロパティを探る方法もあります。
ソース
Option Explicit Sub ietest_0120_2() 'STOPで止めて、インラインフレームを探る Dim objIE As Object 'IEのオブジェクトを作成する Set objIE = CreateObject("InternetExplorer.application") objIE.Top = 250 objIE.Left = 250 objIE.Width = 800 objIE.Height = 400 objIE.Visible = True 'ページを開く(.Navigateで表示する。) objIE.Navigate "http://dec2011.top1-12.info/test0120.html" '読み込み完了となるまで、ループする。 While objIE.ReadyState <> 4 Or objIE.Busy 'READYSTATE_COMPLETE = 4 DoEvents Wend 'iframeのタグを集める .getElementsByTagName("iframe")を使用 Dim objIFRAME As Object Set objIFRAME = objIE.document.getElementsByTagName("iframe") Debug.Print TypeName(objIFRAME(0)) 'オブジェクトのタイプを確認。 Dim oHTMLIFrame As HTMLIFrame 'As HTMLIFrameと参照設定後 型宣言すると便利 Dim n As Integer For n = 0 To objIFRAME.Length - 1 '配列が0からなので-1 Set oHTMLIFrame = objIFRAME(n) 'n番目を代入 Stop '止めてデバッグモード、ウォッチ式で変数を見ると便利ですよ Debug.Print n Debug.Print ".src " & oHTMLIFrame.src '相対パスや絶対パス、ソースの文字列 Debug.Print ".ie8_src " & oHTMLIFrame.ie8_src 'ここに入っているのがiFrameのURL? Debug.Print ".document.URL " & oHTMLIFrame.document.URL '親のURLだった Debug.Print ".document.domain " & oHTMLIFrame.document.domain '親のドメインだった Next n 'IEを閉じたり、後始末 'objIE.Quit 'デバックなのでコメントアウト IEを閉じたり、後始末をする End Sub
終わりのあいさつ
んっ、.ie8_src が参照できた、、質問者は参照できなかった・・・と言っているので、
何か別の原因なのかなぁ・・・?
テスト環境が、OS:Vista 32 の IE9 なので、XP IE8でテストしてみないとなぁ。
STOPで止めて、Document.URLだ・・と説明したかったのに、
今回も、質問の答えが見つからなかった・・・
なんだろう?と気になりつつも、本来はお蔵入りの動画と操作手順を公開します。
※反面教師として、みなさんの肥やしになれば幸いです。 三流プログラマー Ken3