VBAでIEを操る(フレームについて)
今回は、フレームについてです。
社内システムでは未だに使われていたりするので、いちおう書いときましょう。
フレームとは?
複数個に分割した画面に、それぞれ別のページを表示する機能です。下の例では、3つのHTMLファイルが用意されます。
・構成.html(画面表示なし)
- ユーザーは、この構成用HTMLファイルを読み込むことになります。分割の縦横サイズの設定、分割画面に表示するHTMLファイルのURLなどが記されています。
・メニュー.html(画面左)
・内容.html(画面右)
フレーム構造をもったページを操作する
この場合、IE直下のdocumentプロパティでは、フレーム以下のDOMまでは取得できません。
- 誤:
frameタグから、さらにdocumentプロパティを参照する必要があります。
- 正:
構成.htmlが「親」だとしたら、メニュー.htmlと内容.htmlが「子」です。
もし「孫」「ひ孫」があっても、同じようにそれぞれdocumentプロパティを参照する必要があります。
フレーム以下の要素を取得する場合の記述
一行で記述するならこうです。
- Set myElem = ie.document.frames(0).document.getElementsByTagName("p")(0)
※取得したいフレーム、要素がそれぞれインデックス0である場合