WebBrowserでリストボックスの選択


腹黒い三連星  2004-06-28 00:29:22  No: 84250  IP: [192.*.*.*]

WebBrowserコントロールを使って。
自動的にあるページ(http://fx.sauder.ubc.ca/data.html)のボタンをおして次のページを開きたいのですが、
リストボックスのように表示されている(ソースでは<SELECT multiple・・・> )になっている部分の選択がうまくいかず、次のページを開くことができません。
どのようにすればよいでしょうか、ご教授いただければ幸いです。



Private Sub Command2_Click()
                WebBrowser1.Navigate "http://fx.sauder.ubc.ca/data.html"
end sub 
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
        TargetMonth = 5
        TargetYear = 2004
        
        WebBrowser1.Document.getElementsByName("b").Item(0).Value = "USD"
        WebBrowser1.Document.getElementsByName("c").Item(0).Value = "EUR"
        WebBrowser1.Document.getElementsByName("rd").Item(0).Value = ""
        WebBrowser1.Document.getElementsByName("fd").Item(0).Value = "1"
        WebBrowser1.Document.getElementsByName("fm").Item(0).Value = TargetMonth
        WebBrowser1.Document.getElementsByName("fy").Item(0).Value = TargetYear
        WebBrowser1.Document.getElementsByName("ld").Item(0).Value = "31"
        WebBrowser1.Document.getElementsByName("lm").Item(0).Value = TargetMonth
        WebBrowser1.Document.getElementsByName("ly").Item(0).Value = TargetYear
        WebBrowser1.Document.getElementsByName("y").Item(0).Value = "daily"
        WebBrowser1.Document.getElementsByName("q").Item(0).Value = "price"
        WebBrowser1.Document.getElementsByName("f").Item(0).Value = "HTML"
        WebBrowser1.Document.getElementsByName("o").Item(0).Value = "T.C"
        WebBrowser1.Document.getElementsByTagName("INPUT").Item(6).Click

End Sub

編集 削除
魔界の仮面弁士  2004-06-28 10:01:30  No: 84251  IP: [192.*.*.*]

まずはじめに、何らかの方法(たとえば、getElementsByNameメソッド等)を
使って、<SELECT>要素を取得してください。たとえばこんな感じです。
  Set objSelect = WebBrowser1.Document.getElementsByName("c")
その後、そのSELECTオブジェクトのプロパティ/メソッドにて操作できます。

単一項目の選択には、
  objSelect.selectedIndex = 0
などと書けます。

複数項目の操作には、optionsプロパティを使います。
項目数は、
  Debug.Print objSelect.options.length
個々の項目を取得/設定するなら、
  Debug.Print objSelect.options(0).text
  Debug.Print objSelect.options(0).value
  Debug.Print objSelect.options(0).defaultSelected
どの項目を選択するかどうかの指定には、
  objSelect.options(0).selected = True
という感じです。

詳細は、MSDNライブラリの DHTMLリファレンス を参照してください。

編集 削除
だい2  2004-08-09 13:53:54  No: 84252  IP: [192.*.*.*]

便乗ですみません。
選択は出来るのですが、
onChangeで指定されている処理が実行されません。
処理させる方法はあるのでしょうか?

編集 削除
だい2  2004-08-09 14:33:16  No: 84253  IP: [192.*.*.*]

すみません。
onChangeっていう、イベントを発行できるんですね。

おさわがせしました。

編集 削除