はじめに

ブラウジングの方法

プログラムにより自動でネットサーフィンする方法はいくつかありますが、私は以下の3つの方法をお勧めします。

・InternetExplorerを操作する
 プログラムでInternetExplorerを起動し、文字入力やクリックなどの操作を行います。

・WebBrowserコントロールを使う
 「WebBrowserコントロール」を使えば、アプリケーション内にInternetExplorer同様の機能をもたせる事ができます。

・ブラウザを操作するフレームワークを使う
 Seleniumフレームワークは、VB.NET/C#/Java等でブラウザ操作を行うプログラムが作成できます。
 また、WatiNフレームワークはVB.NET/C#で使用できますが、最近は更新がとまっています。


プログラムの種類

・VisualStudio
 Microsoftの開発環境。プログラム言語としてはVB.NET、C#など。
 実際のアプリケーション開発で使われることも多く、機能が豊富である。
 ExpressEditionは無料で提供されており、機能に制限はあるがほとんどの事は行える。

・VBA
 Officeアプリケーション(Excel等)に搭載されている開発環境。プログラム言語はVBA。
 Officeの機能と簡単に連携したプログラムを作成できるのがメリット。

・JScript
 Microsoftののプログラム言語。ほぼJavaScript。
 開発環境は不要で、テキストエディタに記述してそのまま実行できる。
 手軽に開発・実行できるのがメリット。


InternetExplorer操作の準備

プログラムからInternetExplorerを操作するために、開発環境にて以下のライブラリ(COM)の参照を行います。

・「Microsoft Internet Controls」
・「Microsoft HTML Object Library」

VB.NET/C#の場合

1.ソリューションエクスプローラーにて「全てのファイルを表示」をクリックする。
ソリューションエクスプローラーにて「全てのファイルを表示」をクリック

2.「参照設定」上で右クリック -> 参照の追加をクリックする。
「参照設定」上で右クリック -> 参照の追加をクリック

3.COMのタブを選択し、「Microsoft Internet Controls」「Microsoft HTML Object Library」を選択してOKボタンを押下する。
COMのタブを選択し、「Microsoft Internet Controls」「Microsoft HTML Object Library」を選択してOKボタンを押下する。

これでIEを起動する準備ができました。
以下がIEを表示するサンプルコードになります。

					Public Class Form1

						Private objIE As SHDocVw.InternetExplorer

						Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

							'IEの起動
							objIE = CreateObject("InternetExplorer.Application") 'オブジェクトを作成
							objIE.Navigate("about:blank")   '空ページの表示
							objIE.Visible = True    'IEを表示

						End Sub
					End Class
				
                                    public partial class Form1 : Form
                                    {
                                        SHDocVw.InternetExplorer objIE;

                                        public Form1()
                                        {
                                            InitializeComponent();
                                        }

                                        private void Form1_Load(object sender, EventArgs e)
                                        {
                                            //IEの起動
                                            objIE = new SHDocVw.InternetExplorer(); //オブジェクトを作成
                                            objIE.Navigate("about:blank");          //空ページの表示
                                            objIE.Visible = true;                   //IEを表示

                                        }
                                    }
				

VBAの場合

・VBAのメニューより「ツール」→「参照設定」をクリック
・参照可能なライブラリファイルから以下の2つをチェックする
・「Microsoft HTML Object Library」
・「Microsoft Internet Controls」または「Microsoft Browser Helpers」

				Public Sub Sample()
					'IEの起動
					Public objIE As Object	'IEオブジェクト参照用
					Set objIE = CreateObject("InternetExplorer.application")	'IEのオブジェクト作成
					objIE.Visible = True										'IEを表示
				End Sub
				

JScriptの場合

・テキストファイルを作成し、拡張子を「jse」とする
・以下のコードを入力して保存し、ファイルを実行する

					// IE起動
					var ie = WScript.CreateObject("InternetExplorer.Application");
					ie.Navigate("http://www.yahoo.co.jp");
					ie.Visible = true;
				

WebBrowserコントロールを使う

VB.NETやExcelVBAにはWebBrowserコントロールがありますので、これを画面上に配置します。

VBAの場合

Excelのバージョンによって操作方法は多少異なりますが、 基本は一緒です。

1.Excelの画面またはVBAのユーザフォーム画面にて、ツールボックスを表示させます。
2.ツールボックスの空白エリアで「右クリック」→「その他のコントロール」をクリックします。
3.「Microsoft Web Browser」にチェックをつけてOKを押すと、ツールボックスにWebBrowserコントロールが出現します。
4.画面に配置ます。

VB.NET/C#の場合

標準でWebBrowserコントロールが使用できますので、フォームに貼り付けます。
(COM版のWebBrowserコントロールを使いたい場合はこちらを参照)

1.ツールボックスからWebBrowserコントロールを選択する。
WebBrowserコントロール

2.フォームに貼り付け。

初期配置は全面表示になっているので、Dockプロパティを任意で変更する。
WebBrowserコントロール

注意

WebBrowserコントロールはそのままだとInternet Explorer 7として動作しますので、 こちらを参考に最新のIEバージョンに設定してください。

ブラウザを操作するツール・ライブラリを使う

「Selenium」の準備

こちらを参照

「WatiN」の準備

こちらを参照