multiple属性のSelectIndex


コンボ  2004-05-21 12:36:23  No: 83465  IP: [192.*.*.*]

<select multiple>

とコンボボックスのチェックボックスタイプで処理をしたいのですが、
Set objSelect = WebBrowser.Document.getElementsByTagName("SELECT")
  objSelect(0).SelectedIndex = Combo.ListIndex(他にMultiSelect、いずれもエラーはでませんが、動作しません。)

自分なりにはobjSelect(0).SelectedIndexのSelectedIndexプロパティが違うと思うのですが、他のプロパティがあるのでしょうか?

※下に同じトピックで載せてしまいました。

編集 削除
魔界の仮面弁士  2004-05-21 14:05:06  No: 83466  IP: [192.*.*.*]

> <select multiple>
> とコンボボックスのチェックボックスタイプで処理をしたいのですが、
複数選択SELECTコントロール…VB6でいうところの「リストボックス」ですね。
# WebBrowserの場合、Ctrlキーを押しながらクリックする事で、
# 複数の項目を同時に選択する事ができます。

> objSelect(0).SelectedIndex = Combo.ListIndex(他にMultiSelect、いずれもエラーはでませんが、動作しません。)
SELECTオブジェクトのselectedIndexは、単一選択モードの時に使われるプロパティです。
multiple属性が付いている場合、複数の項目が同時に選択される可能性がありますので、selectedIndexプロパティは使えませんね。(multipleの場合、selectedIndexは、選択されている複数の項目のうち、最初のインデックスだけを示します)

替わりに、optionオブジェクトのselectedプロパティを使って見てください。これならば、複数の項目を選択させることが出来ます。

編集 削除
コンボ  2004-05-21 14:25:29  No: 83467  IP: [192.*.*.*]

Set objSelect = WebBrowser.Document.frames(1).Document.getElementsByTagName("SELECT")
    With ListBox
        If .Selected(.ListIndex) = True Then
            objSelect(0).Options(.ListIndex).Selected = True
        Else
            objSelect(0).Options(.ListIndex).Selected = False
        End If
    End With
としてできました。ありがとうございます。それともう1つ問題が出てきたのですが、
WebBrowser.Document.Forms(0).elements(0).Value = Text1.Text
としたいのですが「オブジェクトはこのメソッドまたはプロパティをサポートしていません。」となります。おそらく、いつもとは違い、タグの中に<fieldset>があるからだと思うのですが解決策はありますでしょうか?とりあえずはWebBrowser.Document.Forms(0).elements(0)は<Input>なのでSet objInput〜で処理しているのですが。。。

編集 削除