7.4 指定したページを表示
 そういえば、IEオブジェクトを作りインターネットエクスプローラの画面を表示しても真っ白で何も表示されていません。これじゃ、つまらないし何の役にも立ちませんね(笑)。というわけで、まずは指定したURLのページ(もちろん、ローカルにあるhtmlのページも可能)を表示する方法です。指定したURLを表示したいときは、IEオブジェクトのNavigate(注)というメソッドを使います。

 それと、ついでと言っては何ですが、ページの読み込みが終わるまでVBS(WSH)の処理を待機する方法もやってみましょう。読み込み中か、読み込みが終わっているかを判断するときは、IEオブジェクトのBusyプロパティで判断します。

注:Internet Explorer 7でタブ追加などの操作を行うときは、Navigate2メソッドを使用してください。なお、Internet Explorer 7 での事例は「7.11 IEオブジェクトを作る(IE7編)」を参照してください。
使用例
 NavigateBusyの使い方です。例では、インターネットエクスプローラの画面からツールバーとステータスバーを消し、http://www.yahoo.co.jp/を表示するよう指定。そして、ページの読み込みが完了したらツールバーとステータスバーの表示を行っています。

 表示するページ(URL)の指定は@の所で行っています。Navigateメソッドのパラメタへ指定したURLのページが表示されます。ちなみに、このメソッドはページの読み込みが終わるまで待つような動作はしないので、ページの読み込みが完了するまで処理を待機したいときは、Aの所でやっているようにBusyプロパティを使って自分でなんとかします。

 BusyプロパティはTrueなら読み込み中、Falseなら終わっています。ところで、DoLoopの中にWScript.sleep(250)という命令が入っていますが、これはループのカラ回しによりCPUに余分な負担をかけないようにするための物です。こうすることで、読み込み中か終わっているかの判断を1/250秒に1回だけ行うようになります。

Option Explicit

Dim objIE

'IEオブジェクトを作成します
Set objIE = CreateObject("InternetExplorer.Application")

'ウィンドウの大きさを変更します
objIE.Width = 800
objIE.Height = 600

'表示位置を変更します
objIE.Left = 0
objIE.Top = 0

'ステータスバーとツールバーを非表示にします
objIE.Statusbar = False
objIE.ToolBar = False

'インターネットエクスプローラ画面を表示します
objIE.Visible = True

'@指定したURLを表示します
objIE.Navigate "http://www.yahoo.co.jp/"

'Aページの読み込みが終わるまでココでグルグル回る
Do Until objIE.Busy = False
   '空ループだと無駄にCPUを使うので250ミリ秒のインターバルを置く
   WScript.sleep(250)
Loop

'ステータスバーとツールバーを表示します
objIE.Statusbar = True
objIE.ToolBar = True

Set objIE = Nothing
Copyright(C) 1999-2006 結城圭介。 All rights reserved