最近二輪の定率割引申請サイトで割引の申請をする際にアンケートをしなければならないケースがあった。
毎回申請する際にアンケートは面倒くさいのでExcel VBAのマクロを作成して自動でアンケートに答えることにした。
その際に「チェックボックス」や「ラジオボタン」をVBAで操作する方法をネットで検索したのだがピンポイントに記述したサイトが見つからなかったのでここで紹介してみたい。
今回は第一回目としてチェックボックスの操作について書いてみたい。
(1)概要
例えば以下のようなサイトのチェックボックスがあったとする。
自動操作のマクロで自動的にチェックを付ける方法を記す。
ソースを見ると・・・
(2)マクロ
Sub マクロ
'サイトを表示する
(割愛)
'チェックボックス処理
GoSub p_Checkbox
Exit Sub
'-------------------------------------------
p_Checkbox:
lTag = "input"
For Each oTg In ie.document.GetElementsByTagname(lTag)
If oTg.outerhtml Like "*" & チェックボックスの要素名 & "*" Then
oTg.Checked = True
Return
End If
Next
Return
'-------------------------------------------
(3)解説
まず初めに、マクロの構成としてメイン処理からGosubで詳細処理を下に記述していくのが自分の書き方である。
次にブラウザの右クリックで「ソースを表示」をして目的の項目名で検索すると以下のように要素名が判明する。
今回の例では「chkAutoLogin」。
上記(2)の「チェックボックスの要素名」に記述すればチェックボックスを自動でチェックすることができる。
ポイントはチェックボックスのタグ名はinput、サイトによってname属性の要素名を使用したりid属性の要素名を使用したりあるいはその両方だったりしているのでどちらでも対応できるようにouterhtmlの文字列で部分比較している。
そして最大のポイントは、チェックボックスをチェックするにはCheckedプロパティにTrueをセットするということ。
~VBA HTML操作シリーズ~
その1 チェックボックス ←当サイト