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
まずはじめに、何らかの方法(たとえば、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リファレンス を参照してください。
便乗ですみません。
選択は出来るのですが、
onChangeで指定されている処理が実行されません。
処理させる方法はあるのでしょうか?
すみません。
onChangeっていう、イベントを発行できるんですね。
おさわがせしました。
ツイート | ![]() |