VBAマクロでHTMLを操作する方法の紹介として第二回目の今回はラジオボタンの操作について書いてみたい。
(1)概要
ラジオボタンのHTMLの記述にはいろいろあるようだ。ここでは2つのケースを紹介する。
・ケース1
例えば以下のようなサイトがあったとして、マクロで女性にチェックしてみる
↓
ソースを見ると・・・
・ケース2
例えば以下のようなサイトがあったとして、マクロで100件にチェックしてみる
↓
ソースを見ると・・・
(2)マクロ
Sub マクロ
'サイトを表示する
(割愛)
'ラジオボタン処理
GoSub p_Radio
Exit Sub
'-------------------------------------------
p_Radio:
lTag = "input"
For Each oTg In ie.document.GetElementsByTagname(lTag)
If oTg.Name = nameの値 Then
If oTg.outerhtml Like "*" & ラジオボタン群の中で唯一特定できる文字列 & "*" Then
oTg.Click
Return
End If
End If
Next
Return
'-------------------------------------------
(3)解説
ケース1において、ラジオボタンのname属性の名称は同じだがid名はサイト内で唯一なのでname名を判定しなくてもid名で特定すれば一発で処理できる。
しかし、ケース2においてはid属性は使用されていない。この違いを汎用的にするためにまずname属性でラジオボタン群を特定し、その中でチェックしたいボタンを特定できる文字列を指定することにした。
ケース1ではname属性の値は”q1”でありケース2の場合は"gnr_disp_line"である。
これだけではどのラジオボタンか特定できないので次にouterhtmlの文字列との部分比較で特定する。
ケース1では例えばvalue属性値を利用するのであれば”2”でありケース2の場合は"100"である。
そして最大のポイントは、ラジオボタンをチェックするには対象ボタンをClickするということ。
~VBA HTML操作シリーズ~
その2 ラジオボタン ←当サイト