プルダウンの項目をVBAでクリックしたい
VBAでとあるWEB上のプルダウンの項目をクリックしたいのですが、
調べても項目の表示の変更がされるだけでクリックがされるものが載っていません。
説明が下手で申し訳ございませんが、手動でそのプルダウンをクリックしますと
項目をクリックした瞬間にその専用ページに遷移します。
が、作成したVBAで行うと項目の表示の変更が行われるだけでページが遷移しません。
関係上WEBコードすべてを載せることはできませんが、以下のようなコードになっています
該当のソースコード
<select name="swich_team"> ==0 <option value="1a2b3c4d-5e6f-7g8h9i" selected> team1</option> <option value="9i8h7g-6f5e-4d3c2b1a" selected>team2</option> </select> ・・・ の「team2」のボタンをクリックしたい。
試したコード(VBA)
#If VBA7 Then Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr) #Else Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Long) #End If '接続先URL Public Const url1 As String = "https://XXXXXXXXXXXXXXXXXXXXXXXXX" Sub main() Dim objIE As InternetExplorer Dim objInpSel As HTMLSelectElement 'IE(InternetExplorer)のオブジェクトを作成する Set objIE = CreateObject("InternetExplorer.Application") 'IEを表示させurl1のページを表示する objIE.Visible = True objIE.navigate url1 'IEの表示を待つ Do While objIE.Busy = True Or objIE.readyState < READYSTATE_COMPLETE DoEvents Loop 'ID入力 objIE.document.getElementsByName("XXXXXXXXXXXXXXXXXX")(0).Focus objIE.document.getElementsByName("XXXXXXXXXXXXXXXXXX")(0).Value = "XXXXXXXXXXXXXXXXXXXXXXXXXXX" 'PW入力 objIE.document.getElementsByName("password")(0).Focus objIE.document.getElementsByName("password")(0).Value = "XXXXXXXXXXXXXXXX" 'ログインボタンをクリック objIE.document.getElementsByName("login")(0).Click Do While objIE.Busy = True Or objIE.readyState < READYSTATE_COMPLETE DoEvents Loop 'プルダウンからTeam変更 objIE.document.querySelector("[name=switch_team] option:nth-child(2)").Click Do While objIE.Busy = True Or objIE.readyState < READYSTATE_COMPLETE DoEvents Loop '======================================== 'Teamを選択 ' Set objInpSel = objIE.document.getElementsByName("switch_team")(0) 'セレクトボックスを選択 ' objInpSel.selectedIndex = 1 ' Do While objIE.Busy = True Or objIE.readyState < READYSTATE_COMPLETE ' DoEvents ' Loop '======================================== MsgBox "終了しました" End Sub
ちなみに直接URL開けばいいんじゃないかと思い、調べましたが
「team1」「team2」で表示されるURLは同じものでした。(すみませんHTMLの知識があまりないので理由はわかりませんが「team1」「team2」で表示されるページ内容は明らかに違います)
上記方法がわかる方、ご教示頂けますでしょうか。
何卒よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー