どうも、マサヤです!
この記事は、VBAでのIE操作が初めて or 慣れていない方向けに『Webサイト・システムの情報を取得・設定する方法』をお伝えしていく連載記事となってます!
前回はWebサイトのラジオボタンへのチェックと判定方法を紹介しました!
今回は「チェックボックスへのチェック方法及び判定方法」をお伝えします!
【動画で確認】チェックボックスをチェック・判定する方法
チェックボックスのチェックと判別方法については、ラジオボタンとほぼ変わりません。
まずは動画で動きを確認しましょう。
動画内で操作しているサンプルページはこちらです。
チェックボックスへのチェック・判定するコード
コードはこちらになります。
Sub ieSetCheckBox()
'IEオブジェクトを作成
Dim ie As InternetExplorer
Set ie = CreateObject("InternetExplorer.Application")
'HTMLコレクションを取得 独自関数化
Call IeGetObj(ie, "https://mmm-program.com/vba-test-radioandcheckbox/")
'興味の全てにチェックを入れる。
For Each interest In ie.document.getElementsByName("interest")
interest.Click
Next
i = 3
'チェックした項目をB列に出力する。
For Each interest In ie.document.getElementsByName("interest")
If interest.Checked = True Then
Cells(i, 2) = interest.Value
i = i + 1
End If
Next
'オブジェクトを閉じる
ie.Quit
'メモリからオブジェクトを破棄
Set ie = Nothing
End Sub
'指定URLのオブジェクトを取得する独自関数
Sub IeGetObj(obj, url, Optional vFlg As Boolean = True)
'IEを表示(見えるようにする)
obj.Visible = vFlg
'指定したURLをIEで開く
obj.Navigate url
'サイトの読み込みが完了するまで待つ
Do While obj.Busy = True Or obj.readyState < READYSTATE_COMPLETE
DoEvents
Loop
End Sub
チェックボックス要素の取得後、Clickメソッドでチェックする
チェックボックス要素の取得方法に関しては前回と同様にName属性から取得しています。
もし、Name属性が付与されていない場合は、id・Class属性など他に付与されいる属性で取得します。
そして、取得したオブジェクトに対してClickメソッドを使うことでチェックが可能となります。
今回はName属性とId属性の2つの取得方法をお伝えします。
Name属性で取得
複数まとめてチェックしたい場合などは、下記のように書けるName属性が便利です。
'興味の全てにチェックを入れる。
For Each interest In ie.document.getElementsByName("interest")
interest.Click
Next
Name属性を取得し、ForEachの繰り返しで全てのチェックボックスにチェックしてます。
Id属性で取得
チェックする項目が一つだけで固定されている場合、Id属性を使うほうがシンプルに書けます。
ie.document.getElementById("id名").Click
Checkedメソッドでチェック状況を判別
チェックされているかどうかを判別する方法はラジオボタンと同様にCheckedメソッドで確認ができます。
i = 3
'チェックした項目をB列に出力する。
For Each interest In ie.document.getElementsByName("interest")
If interest.Checked = True Then
Cells(i, 2) = interest.Value
i = i + 1
End If
Next
CheckedがTrueならチェック済み、Falseなら未チェックとなります。
このコードで、興味のチェックボックスを一つずつ確認して、チェックが入って入ればExcelのB列に出力するといった処理を行っています。
注意点:Checkedメソッドでチェックする際は要注意
前回でもお伝えしたとおり、Checkedメソッドでもチェックが出来ますが、JavaScriptが反映(動作)しない可能性が高いことを注意しましょう。
動作させたい場合はClickメソッドを使うことでほぼ解決できますので、チェックする際はClickメソッドを使いましょう。
まとめ
チェックボタンのチェックと判別方法の流れは簡単にまとめると、
さて、次回はリストボックス(プルダウン)のチェックと判別方法をお伝えしていきますね!

コメント