DOM(Document Object Model)について

このページでは、IEの操作で基本となるDOMについてまとめました。Javascriptをご存じの方にとってははおなじみの概念ですが、IEの操作でも基本的な考え方は同じです。

DOMとは?

DOM(Document Object Model)は、HTMLドキュメントの要素を取得したり操作したりするための仕組みです。DOMツリーと呼ばれる、階層上のツリー構造でHTMLドキュメントを表現します。

ツリー構造とは親と子の関係からなる体系のことです。例えばbodyタグの下にh1タグやpタグがあるといったHTMLドキュメントの親子関係をツリー状に表わしたものがDOMツリーです。

DOMツリー

DOMツリーの各要素は、ノードと呼ばれています。またツリーを相対的に見て、親の関係にあるノードを親ノード、子の関係にあるノードを子ノードとも言います。

DOM操作の基本

VBAからDOMを操作する場合は、基本的な流れは以下のようになります。

  1. IEオブジェクトを生成
  2. IEオブジェクトのnavigateメソッドでURLに接続する
  3. IEオブジェクトのDocumentプロパティからドキュメントオブジェクトを取得
  4. ドキュメントオブジェクトを操作する

ソードコードとして示すと以下のようになります。実際にプログラムとして動かすにはもっと細かい処理が必要ですが、ここでは流れを示すために内容を簡略化しています。

よく使われるメソッド

取得したドキュメントオブジェクトの操作でよく使われるメソッドを挙げてみます。

getElementsByIDメソッド

getElementsByIDメソッドは、要素のIDによって要素を取得するメソッドです。例えば<p id=”example”>…</p>という要素が有る場合、以下のようにノードを取得します。objIEはIEオブジェクトです。

getElementsByTagNameメソッド

getElementsByTagNameメソッドは、要素のタグ名によって要素を取得するメソッドです。例えば<p id=”example”>…</p>という要素が有る場合、以下のようにノードを取得します。objIEはIEオブジェクトです。

該当のタグが複数存在する場合、当然getElementsByTagNameの返り値も複数になります。その場合は、Forステートメントなどで値を個別に処理します。

スポンサーリンク