- ベストアンサー
VB.NETでIE上にキーワードを入力したい
VB.NETで、IE上の下記のような検索エンジンの検索欄にキーワード(テキスト)を入力したいと考えております。 http://www.leonet.jp/search/ 例えば、TextBox1の内容をButton1のボタンが押された時、検索欄に入力されるようなサンプルプログラムをご教示願います。 宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ああ、Windowsアプリからの話ですね。 じゃあNo1の回答は無視してください。 で、ポイントになるのは、IEのアプリケーションオブジェクトを作成する。 Set objIE = CreateObject("InternetExplorer.application") の部分だと思います。 、IEのオブジェクトを探すサンプルは見つからなかったので、EXCELのオブジェクトを作成するサンプルを元に試行錯誤してみるといいのでは? 参考ページの Dim xlApp As New Excel.Application にあたる部分でIEのオブジェクトを作成してしまえばあとはVBAからの操作のコードがそのまま使えるはずです。
その他の回答 (1)
- khazad-lefty
- ベストアンサー率44% (296/668)
ASP.NET上の話と仮定して話を進めます。 別のサイトのページのテキストボックスにキーワードを入力するのはかなり無理があります。 ASP.NETの結果として帰ってくるのは最終的にはWEBページでしかないので、自分が関与していないページの内容を同行するのは不可能です。 とりあえず方法として、 1.フレーム内に該当の検索ページを表示、JavaScriptを使ってそのページのテキストボックスにキーワードを埋め込む。 →ただ、フレーム内にある別サイトのページをJavaScriptで操作するのは、ブラウザのセキュリティ設定をいじらないといけなかった記憶が…。 2.検索結果表示用のURLを作成、直接検索結果のページを表示する。 →通常の検索エンジンは、検索条件をURLに含め、そのURLに基づき結果を表示しているので、そのURL文字列を作成してそのページにジャンプ(またはJavaScriptなどで別ページにて表示)する。
お礼
ご回答有難うございました。 相当難しそうですね。 Excelの下記マクロを使って入力できるところまでは調べたのですが、これと同じような動作をVB.NETのWindowsアプリケーションからやりたいと思います。 Excelのマクロ Sub test() Dim objIE As Object Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "http://www.leonet.jp/search/" Do While objIE.Busy = True DoEvents Loop objIE.document.all.word.Value = "検索文字" End Sub VB.NETのWindowsアプリケーションから下記の方法でIEを開くところまではできたのですが、その後がわかりません。 VB.NETプログラム Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click System.Diagnostics.Process.Start _ ("C:\Program Files\Internet Explorer\IEXPLORE.EXE") End Sub ちなみに、Excelのマクロでは検索窓の部分のHTMLソースのwordをキーにしているようです。 http://www.leonet.jp/search/の検索窓の部分のHTMLソース <INPUT type=hidden value=search name=mode><INPUT type=hidden value=1 name=page> <INPUT type=hidden value=mark name=sort> <INPUT name=word> 説明不足で申し訳ありませんでしたが、Excelのマクロのような感じでVB.NETのWindowsアプリケーションからできないものでしょうか。 よろしければ、又ご教示願います。
お礼
再度のご回答ありがとうございました。 参考ページを見て、Microsoft Excel オブジェクトライブラリを追加しましたところ、Excelのマクロがそのまま使えました。(DoEventsはSystem.Windows.Forms.Application.DoEvents()に変更) これで、前に進めます。大変うれしいです。