ベスパリブ

プログラミングを主とした日記・備忘録です。ベスパ持ってないです。

VB6.0でWebBrowserを使用してセレクトボックスを操作する

まえがき

あまりにもレガシー過ぎてググってもリファレンスもドキュメントもそんなに残っていない。
適当にVBAのコードを書いたら動いた。

本題

htmlのソース

<select id="Contact" name="Insw" >
<option value=0 selected >入力0</option>
<option value=1 >入力1</option>
</select>

やりたいことは、selectedされているoptionを取得し、他方のoptionを選択する。
上の例では、入力0がselectedされているので、入力1を選択したい。

VB6.0のコード

Dim elem As Object
Dim elem2 As Object
Dim obj_select As Object
Dim i As Long
'-------------------------
'--------------------------------------------------------
'セレクトボックスを変更する処理
'--------------------------------------------------------
For Each elem In WebBrowser_AutoConnect.Document.All.tags("select")
    If elem.getAttribute("name") = "Insw" Then    
        For Each elem2 In WebBrowser_AutoConnect.Document.All.tags("option")
            If elem2.getAttribute("selected") = True Then    
                If elem2.getAttribute("value") = 0 Then
                    '入力0が選択されているならば、入力1に切り替える
                    Set obj_select = WebBrowser_AutoConnect.Document.getElementsByName("Insw")(0)
                    'セレクトボックス(入力1)を選択
                    obj_select.selectedIndex = 1
                    Exit For
                Else
                    '入力1が選択されているならば、入力0に切り替える
                    Set obj_select = WebBrowser_AutoConnect.Document.getElementsByName("Insw")(0)
                    'セレクトボックス(入力0)を選択
                    obj_select.selectedIndex = 0
                    Exit For
                End If
            End If
        Next
        Exit For
    End If
Next