3

Webフォームに入力してボタンをクリックするvbaコードを作成しようとしています。optionページ上のさまざまなタグをループして、必要なタグを選択しています。到達したら選択したいのですが、構文がわかりません。

Dim htmlO As HTMLOptionElement
For Each htmlO In Object.getElementByTagName("option")
    If Trim(htmlO.value) = "INS" Then
       htmlO.????  (click? select?)
        Exit For
    End If
Next

WebページのHTMLは次のとおりです。

<select gtbfieldid="40" id="menu" name="pv_choice">
<option selected="selected" value="ZZZ">Choose Menu Option
</option><option value="BL_COMP">Blanket Companies
</option><option value="CARR_SEARCH">Carrier Search
</option><option value="PASSWORD">Change Password
</option><option value="FED_REG">FMCSA Register
</option><option value="FEEDBACK">Feedback
</option><option value="HOME">Home Page
</option><option value="INS">Insurance Filing
</option><option value="OOS_LIST">Out Of Service Carriers
</option></select>

オプション「INS」を選択したい。

4

4 に答える 4

2
Dim StrFindText  as string
Dim htmlSelect As HTMLSelectElement
Dim htmlItemOption As IHTMLOptionElement

Set htmlSelect  = Object.getElementById("menu")
StrFindText = "INS"

For i = 0 To htmlSelect.options.length - 1
    htmlItemOption = htmlSelect.options(i)
    ' UCase(htmlItemOption.text) = UCase(StrFindText) ' if find text options
    If UCase(htmlItemOption.value) = UCase(StrFindText) Then
       htmlItemOption.selected = True
       Exit For
    End If
Next i
于 2012-06-26T19:41:02.273 に答える
1

私はVBAを使用したことがないので、事前に謝罪しますが、DOMに、私が精通している他の言語と同じ構造を使用していると仮定して、次のことを試してください。

htmlO.selected= "selected"

これは私がjavascriptでこれを達成する方法です:)

HTH

于 2010-03-03T18:32:23.970 に答える
0

最終的に機能したのは...

Dim htmlO As HTMLSelectElement
Set htmlS = objdoc.getElementById( "menu")
htmlS.selectedIndex = 7

メニュー全体を参照して、個々のオプションを選択するのではなく、どれを選択するかを選択する必要がありました。

于 2010-03-03T19:02:21.600 に答える