【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集

VB初心者です。さきほどの質問で、自分ができたところまでのソースを載せ忘れたので、改めて質問させていただきます。
今Visual Basic 2010 .Netで、
フォームに貼り付けたテキストボックスに入力した文字列を、
ボタンをクリックするとGoogleを立ち上げ、
そのGoogleのテキストボックスに先ほどフォームで入力した文字列を自動で入力、
入力後自動で検索のボタンをクリック
するというのを作成中なのですが、Googleを立ち上げたところまではできたのですが、テキストボックスへ自動で入力するところでエラーが出て止まっています。
フォームのテキストボックスの文字列の取得は成功してまして、参照の追加COMで必要な参照はしています。
フォームでWebブラウザのツールを使わずに上記をするのは無理なのでしょうか?
ご存知の方はご教示のほどよろしくお願いいたします。
下にソースを載せます。

Pubic Class Form1

Private WithEvents IE As SHDocVw.InternetExplorer
Private myUrl As String
Private Googletxt As String

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

If Not (IE Is Nothing) Then
IE.Quit()
IE = Nothing
End If
myUrl = "http://www.google.co.jp/"
IE = New SHDocVw.InternetExplorer
Googletxt = Textbox1.Text
IE.Visible = True
IE.Navigate2(myUrl.ToString)

End Sub

Private Sub IE_DocumentComplete(ByVal pDisp As Object, ByRef URL As Object) Handles IE.DocumentComplete

Invoke(New SHDocVw.DWebBrowserEvents2_DocumentCompleteEventHandler(AddressOf foo), pDisp, URL)

End Sub

Private Sub foo(ByVal pDisp As Object, ByRef URL As Object)

Dim Doc0 As mshtml.HTMLDocument = CType(IE.Document, mshtml.HTMLDocument)
Dim ElCo As mshtml.IHTMLElementCollection = CType(Doc0.all, mshtml.IHTMLElementCollection)
Dim elem As mshtml.HTMLInputTextElement = DirectCast(ElCo.item("q"), mshtml.HTMLInputTextElement)
elem.value = Googletxt '検索キーワードの入力用テキストボックスに書き込み
Dim btn1 As mshtml.HTMLInputTextElement = DirectCast(ElCo.item("btnG"), mshtml.HTMLInputTextElement)
btn1.click() '検索ボタンをクリック

End Sub
End Class

エラー
elem.value = Googletxt
上記のところで、"オブジェクト参照が オブジェクトインスタンスに設定されていません。"
と出ています。

A 回答 (2件)

IE のバージョン等でエラーが表示されるようです。


修正版をアップしておきましたので、書き換えて試して見て下さい。
それと、.NET 系のVBから IE や Excel 等のCom オブジェクトを操作するには必ず、Com オブジェクトの
解放処理が必要になります。
エラーやプロセスに残らないからと言って省略するような事は避けて下さい。

※ サンプル等の引用は、最低限 出典 等明記するようにして転載が許可されていない場合は
  リンク等を貼って引用するようにしましょう。
    • good
    • 0
この回答へのお礼

ご回答、ご指摘ありがとうございます。
書き換え、COMの解放の処理を入れたのですが、エラーメッセージの解決になりませんでした。
ご回答いただいた内容で勉強し、解決したいと思います。

お礼日時:2012/01/18 15:58

Process.Start("

http://google.co.jp/search?q=" + HttpUtility.UrlEncode(Textbox1.Text))

参考
http://www.atmarkit.co.jp/fdotnet/dotnettips/212 …
    • good
    • 0

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