基本操作

InternetExplorer操作の準備」 「WebBrowserコントロールを使う準備」 を参考に準備をしてください。

ページ表示

navigateメソッドを使うことで、指定したURLを開きます。

サンプルコード(IE操作時)

					objIE.Navigate("http://yahoo.co.jp") '開きたいURL
				
					objIE.Navigate("http://yahoo.co.jp");   //開きたいURL
				
					objIE.Navigate "http://yahoo.co.jp" '開きたいURL
				

サンプルコード(WebBrowser時)

					WebBrowser1.Navigate("http://yahoo.co.jp") '開きたいURL
				
					webBrowser1.Navigate("http://yahoo.co.jp"); //開きたいURL
				
					WebBrowser1.Navigate "http://yahoo.co.jp" '開きたいURL
				

読み込み待ち

navigateメソッドでURLを読み込んでも、すぐに読み込まれるわけではなく、完了を待つ必要があります。

サンプルコード(IE操作時)

					Public Function OpenWebWait() As Boolean

						Try
							'読み込み完了まで待つ
							Do While (objIE.Busy OrElse _
								objIE.ReadyState <> SHDocVw.tagREADYSTATE.READYSTATE_COMPLETE)

								'無処理
								System.Windows.Forms.Application.DoEvents()
								System.Threading.Thread.Sleep(100)
							Loop

							Return True

						Catch ex As Exception
							Return False
						End Try

					End Function
				
                    public bool OpenWebWait()
                    {
                        try
                        {
                            //読み込み完了まで待つ
                            while (objIE.Busy || objIE.ReadyState != SHDocVw.tagREADYSTATE.READYSTATE_COMPLETE)
                            {
                                //無処理
                                System.Windows.Forms.Application.DoEvents();
                                System.Threading.Thread.Sleep(100);
                            }

                            return true;
                        }
                        catch (Exception ex)
                        {
                            return false;
                        }
                    }
				
				Public Function OpenWebWait() As Boolean

					Try
						'2秒間ほど待機
						System.Threading.Thread.Sleep(2000)

						'読み込み完了まで待つ
						Do While (WebBrowser1.IsBusy OrElse _
							WebBrowser1.ReadyState <> WebBrowserReadyState.Complete)

							'無処理
							System.Windows.Forms.Application.DoEvents()
							System.Threading.Thread.Sleep(100)
						Loop

						Return True

					Catch ex As Exception
						Return False
					End Try

				End Function
				

サンプルコード(WebBrowser時)

				Public Function OpenWebWait() As Boolean

					Try
						'2秒間ほど待機
						System.Threading.Thread.Sleep(2000)

						'読み込み完了まで待つ
						Do While (WebBrowser1.IsBusy OrElse _
							WebBrowser1.ReadyState <> WebBrowserReadyState.Complete)

							'無処理
							System.Windows.Forms.Application.DoEvents()
							System.Threading.Thread.Sleep(100)
						Loop

						Return True

					Catch ex As Exception
						Return False
					End Try

				End Function
				
                try
                {
                    //2秒間ほど待機
                    System.Threading.Thread.Sleep(2000);

                    //読み込み完了まで待つ
                    while (webBrowser1.IsBusy || webBrowser1.ReadyState != WebBrowserReadyState.Complete)
                    {
                        //無処理
                        System.Windows.Forms.Application.DoEvents();
                        System.Threading.Thread.Sleep(100);
                    }

                    return true;
                }
                catch (Exception ex)
                {
                    return false;
                }
				
  • このサンプルは、サイトを開いた場合、またはリンクをクリックした後に呼び出すことで、読み込みが終わるまでループします。
  • Busy/IsBusyプロパティは、ドキュメントを読み込んでいてビジーな場合にtrueになります。
  • ReadyStateプロパティでは、現在のドキュメントの読み込み状態が取得できます。Completeになれば読み込み完了です。
  • DoWhile文により、IEの状態がビジーでなく、かつ読み込み状態が完了待ちでなくなるまで、ループを続けます。
  • DoEnventsは、ループで固まらない(操作できない)ように、CPU時間を他に割り当てます。
  • 現状のままでは読み込みが完了するまで無限ループしますので、必要に応じて 一定時間経過するとエラー終了としたり(タイムアウト)、 ボタンが押された場合に停止する処理をいれたほうが良いと思います。
  • VB.NETのWebBrowserでは、リンククリックした直後はBusy状態になっていない事があるので、 一定時間経過してからBusyチェックするのが良さそう。

参考

WebBrowser.IsBusyプロパティ
WebBrowser.ReadyStateプロパティ

戻る/進む/ホームページ/検索

履歴リストの中を前後に移動したり、現在のユーザーのホームページや検索ページを読み込むことができます。

サンプルコード(IE操作時)

					objIE.GoBack()	'戻る
					objIE.GoForward()	'進む
					objIE.GoHome()	'ホームページに移動
					objIE.GoSearch()	'既定の検索ページに移動
				
                    objIE.GoBack();     //戻る
                    objIE.GoForward();  //進む
                    objIE.GoHome();     //ホームページに移動
                    objIE.GoSearch();   //既定の検索ページに移動
				
					objIE.GoBack	'戻る
					objIE.GoForward	'進む
					objIE.GoHome	'ホームページに移動
					objIE.GoSearch	'既定の検索ページに移動
				

サンプルコード(WebBrowser時)

					WebBrowser1.GoBack()	'戻る
					WebBrowser1.GoForward()	'進む
					WebBrowser1.GoHome()	'ホームページに移動
					WebBrowser1.GoSearch()	'既定の検索ページに移動
				
                    webBrowser1.GoBack();       //戻る
                    webBrowser1.GoForward();    //進む
                    webBrowser1.GoHome();       //ホームページに移動
                    webBrowser1.GoSearch();     //既定の検索ページに移動
				
					WebBrowser1.GoBack	'戻る
					WebBrowser1.GoForward	'進む
					WebBrowser1.GoHome	'ホームページに移動
					WebBrowser1.GoSearch	'既定の検索ページに移動
				

中止/再読み込み

読み込みを中止したり、再読み込みができます。

サンプルコード(IE操作時)

					objIE.Stop()	'読み込み中止
					objIE.Refresh()	'再読み込み
				
                    objIE.Stop();       //読み込み中止
                    objIE.Refresh();    //再読み込み
				
					objIE.Stop	'読み込み中止
					objIE.Refresh	'再読み込み
				

サンプルコード(WebBrowser時)

					WebBrowser1.Stop()	'読み込み中止
					WebBrowser1.Refresh()	'再読み込み
				
                    webBrowser1.Stop();     //読み込み中止
                    webBrowser1.Refresh();  //再読み込み
				
					WebBrowser1.Stop	'読み込み中止
					WebBrowser1.Refresh	'再読み込み
				

IEの表示/非表示

【IE操作時】
起動しているIEの表示有無の設定/参照します。
プログラムでIEを起動時はFalseになっているので、Trueに設定しないと見えません。
非表示に設定した場合でも、画面上から見えないだけで動作・操作はできます。

サンプルコード

					objIE.Visible = True 'IEが見えるようになる
					objIE.Visible = False 'IEが見えなくなる
				
                    objIE.Visible = true;   //IEが見えるようになる
                    objIE.Visible = false;  //IEが見えなくなる
				
					objIE.Visible = True 'IEが見えるようになる
					objIE.Visible = False 'IEが見えなくなる
				

Trueを設定するとIEが表示されます。 FalseにするとIEの画面が消えますが、表示されていないだけで起動しています。

IEの位置/サイズ

【IE操作時】 起動しているIEの位置・サイズを設定/参照します。

サンプルコード

					Debug.WriteLine(objIE.Top)	'X座標
					Debug.WriteLine(objIE.Left)	'Y座標
					Debug.WriteLine(objIE.Width)	'幅
					Debug.WriteLine(objIE.Height)	'高さ
				
                    Console.WriteLine(objIE.Top);     //X座標
                    Console.WriteLine(objIE.Left);    //Y座標
                    Console.WriteLine(objIE.Width);   //幅
                    Console.WriteLine(objIE.Height);  //高さ
				
					Debug.Print objIE.Top	'X座標
					Debug.Print objIE.Left	'Y座標
					Debug.Print objIE.Width	'幅
					Debug.Print objIE.Height	'高さ
				

IEのバー操作

【IE操作時】

  • Statusbar:ステータスバーの表示有無を設定/参照します。
  • StatusText:ステータスバーに表示するテキストを設定/参照します。
  • Toolbar:ツールバーの表示有無を設定/参照します。
  • AddressBar:アドレスバーの表示有無を設定/参照します。

サンプルコード

タイトル/URLの取得

現在表示しているサイトのタイトルとURLを取得します。

サンプルコード(IE操作時)

					MsgBox(objIE.Document.Title)	'タイトルを表示する
					MsgBox(objIE.Document.Url)	'URLを表示する
				
                    MessageBox.Show(objIE.Document.Title);  //タイトルを表示する
                    MessageBox.Show(objIE.Document.Url);    //URLを表示する
				
					MsgBox(objIE.Document.Title)	'タイトルを表示する
					MsgBox(objIE.Document.Url)	'URLを表示する
				

サンプルコード(WebBrowser時)

					MsgBox(WebBrowser1.Document.Title)	'タイトルを表示する
					MsgBox(WebBrowser1.Document.Url)	'URLを表示する
				
                    MessageBox.Show(webBrowser1.Document.Title);            //タイトルを表示する
                    MessageBox.Show(webBrowser1.Document.Url.ToString());   //URLを表示する
				
					MsgBox(WebBrowser1.Document.Title)	'タイトルを表示する
					MsgBox(WebBrowser1.Document.Url)	'URLを表示する
				

終了処理

【IE操作時】
アプリケーションを終了させてもIE自体は終了しないので、IEは起動したままになります。
アプリケーションの終了時にIEも閉じるには、IEに終了を指示する必要があります。

サンプルコード

					If Not objIE Is Nothing Then
						objIE.Quit()
						objIE = Nothing
					End If
				
                    if(objIE != null){
                        objIE.Quit();
                        objIE = null;
                    }
				
					If Not objIE Is Nothing Then
						objIE.Quit
						Set objIE = Nothing
					End If
				

【WebBrowser使用時】
アプリケーションが終了すればWebBrowserも終了しますので、 終了処理は不要です。
ただし、プログラム中で動的にWebBrowserオブジェクトを作成した場合は、 Disposeメソッドにて解放する必要があります。