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


腹黒い三連星  2004-06-28 09:29:22  No: 84250

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 19:01:30  No: 84251

まずはじめに、何らかの方法(たとえば、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 22:53:54  No: 84252

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


だい2  2004-08-09 23:33:16  No: 84253

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

おさわがせしました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加