dポイントプレゼントキャンペーン実施中!

VB2008でWebBrowserコントロール内のsubmitボタンを以下のコードでクリックしようとしているのですが、

WebBrowser1.Document.Forms("フォームの名前").InvokeMember("submit")

NullReferenceExceptionはハンドルされませんでした。
オブジェクト参照がオブジェクト インスタンスに設定されていません。
というエラーが出ます。

ボタンがフォームの中ではなく、tableの中に配置されているようで、idも指定されておらず、nameとvalueだけ指定されているのですが何か方法はないでしょうか。
どなたかお願いします。

A 回答 (3件)

IE7以上でVB2008だと、VBA(VB6)の"InternetExplorer.application"オブジェクトが何故か動きません(参照設定しても)


VB2008でWebBrowserコントロールオブジェクトを使うときは、今一面倒です。

ご質問のケースでは、<form>タグが無いのですね。このような時は、
<input type"submit" ...>のタグを探してInvokeMember("click")するしかないでしょう。
探し方は、いろいろありますが、一例を挙げると、
WebBrowser1.Document.GetElementsByTagName("input").Count
の数だけループして
webBrowser1.Document.GetElementsByTagName("input").Item(i).GetAttribute("Type").ToString
の値が "submit" の要素を見つけて
WebBrowser1.Document.GetElementsByTagName("input").Item(i).InvokeMember("click")
です。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2009/06/27 23:23

No1です。

VBはよく知らないので、あまりお力にはなれそうもないですが…

検索してみたところ、かなり古いですが(VB6なので)以下のようなものがありました。
http://hpcgi1.nifty.com/MADIA/VBBBS/wwwlng.cgi?p …
http://hpcgi1.nifty.com/MADIA/VBBBS2/wwwlng.cgi? …

これ(↑)によると、Formをsubmitしてあげるか、INPUT type="submit"を探して、Clickしてあげるかのどちらかだと思うのですが…)
仕様が変わっちゃったんでしょうかね。
>「'submit' は 'System.Windows.Forms.HtmlElement' のメンバでは
>ありません」
っていわれちゃうとなると、なんとも…

ひょっとして、Formオブジェクトがうまく取得できていないってことはないですよね?
後は、他の方からの回答をお待ちします。
    • good
    • 0

VBではなくVBAで確認していますので、違っているかも知れませんが…



WebBrowser1.Document.Forms("フォーム名").submit

でいけませんか?
(フォームをサブミットすれば良いはずなので。VBAではいけました。)

この回答への補足

ごめんなさい、「'submit' は 'System.Windows.Forms.HtmlElement' のメンバではありません」のエラーが出て処理できませんでした。

補足日時:2009/06/25 17:00
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!