スポンサーリンク

getElementsbyTagNameなど、getElementsの種類を確認~VBA(マクロ)でIE操作

IE関係
この記事は約4分で読めます。

getElementsByの種類を確認してみようと思います。

スポンサーリンク

getElementsbyTagNameなどgetElementsの種類を確認

要素の特定をするために、object.document.getElementsByTagName()などを使いますが、
検索するとgetElements○○がいっぱいあり、

・どれを使うべきかわからない。
・そもそもどのような種類があるのかわからない。

という問題に遭遇しましたので、解説していきたいと思います。

どのような種類があるの?

まず、どのような種類があるのか確認してみました。
確認できた種類は4つとなっております
・getElementbyID
・getElementsbyTagName
・getElementsbyName
・getElementsbyClassName

それぞれの違いと使い方。

getElementbyID

まず推奨は、「getElementbyID」です。
というのも、1つのHTMLの中にIDの重複は許されておりません。
よって、特定したい要素のIDが分かれば、
「getElementbyIDで確実に拾い上げることができます。
使い方は、

object.document.getelementbyID("○○").VALUE="△△"
’や
object.document.getelementbyID("○○").CLICK
object.document.getelementbyID("○○").SUBMIT

などとなっており非常にシンプルになっております。

・getElementsbyTagName・getElementsbyName・getElementsbyClassName

そのほかの3つについてはIDと違って、一つに特定されることはありません。
ですので、getElementsbyと複数形となっております。
よって使い方は、特製したい要素のタグや、名前が出てくる順番が分かる場合、

’0から数えて5番目に出てくるものに▲▲と書き込み場合
object.document.getElementbyTagName("○○")(5).VALUE="▲▲"
object.document.getElementbyName("○○")(5).VALUE="▲▲"
object.document.getElementbyClassName("○○")(5).VALUE="▲▲"

という書き方になります。
また、順番が分からない場合でも、Tag○○でNameが◇◇とわかる場合、

For Each A In objIE.document.getElementsByTagName("○○")
 IF A.NAME="◇◇" THEN A.VALUE="▲▲"
NEXT

と、タグネームが○○のものでループさせ、
その中から名前が一致するものを抜き出し、動作を実行させる必要があります。
しかし、タグと名前が一致しているものが同じHTMLの中に二つあった場合、
どちらにも同じ動作をしてしまうのことになりますので、
IDがある場合はIDを使用した方が無難だと思います。

特定したい要素のIDやTagNameやNameを知る方法。

特定したい要素の属性が分かれば、
getElementで取り出すことができることが分かりましたので、
要素の属性を確認方法を説明していきたいと思います。

右クリック→要素の検査

一番簡単なのが、知りたい要素の上で右クリック→要素の検査を使うことです。

YAHOOの検索ボックスを確認してみましょう。
検索ボックスの上で右クリックを押すと下記のように、要素の検査(L)と出ると思います。
ここをクリックしてください。

すると、下図のような開発者ツールが起動し、HTMLコードの、その要素がハイライトされると思います。
ここを確認することで、要素の属性を知ることができます。
今回の場合、TagName=”input”、name=”p”、id=”srchtxt”であることが分かりました。

また、開発者ツールは[F12]を押すことで立ち上げることができ、
この画面上で[ctrl+B]を押すことで要素の検索モードに入ることができます。
下図のように選択範囲がハイライトされ、クリックすることで、
先ほどと同じように、htmlの中身を見ることができます。
この結果検索ボタンはID=”srchbtn”であることが分かりました。

記事のまとめ

この記事のまとめは下記のとおりです。

・ getElementには4種類あるが、推奨は getElementbyIDである。
・IDがなく、そのほかのgetElementsを使用するときは
 →sを忘れないこと!
 →一つに定まらないので、要素の番号を指定、もしくは複数検索で使用すること。
・要素の検索は右クリック「要素の検査」か、[F12]→[ctrl+B]で検索すること

また、要素を全て抜き出すためのコードも公開していますのでご確認ください↓

【簡単】VBAでIEの全要素のデータを取得する方法~VBA(マクロ)でIE操作
↓のサイトで、IEを表示することができました。次は、HTMLの中身を確認し、任意の情報を取り出す方法を書いていこうと思います。VBAでIEの全要素のデータを取得する方法マクロでIEを操作して行いたいことは、①サイト...

コメント欄

タイトルとURLをコピーしました