VBAのIE(InternetExplorer)制御で指定したURLをInternetExplorerで起動させ、Webページが完全に読み込まれるまで待機処理をするサブルーチンです。
データ抽出やインターフェースの自動化にしても必ず最初は指定したURLをIEで起動させるところから始まります。 こちらの処理は何度も利用されるプログラムですので、そのような処理をサブルーチン化させると色々なメリットが生まれます。ここでは、そのようなサブルーチン化のメリットも含めて解説しています。
サブルーチンとは、プログラム処理の中で繰り返し利用されるルーチン作業をモジュール化(部品化)してまとめたものになります。また、呼び出す側をメインルーチンと呼ぶのに対して「サブルーチン」と呼ばれます。
繰り返し利用されるルーチン作業をモジュール化(部品化)することで、同じ処理のプログラムを何度も書く手間が省け、プログラムも全体的に見やすくなります。これによりプログラムソースの可読性や保守性を高く保つことができます。
Sub ieView(objIE As InternetExplorer, _
urlName As String, _
Optional viewFlg As Boolean = True)
'IE(InternetExplorer)のオブジェクトを作成する
Set objIE = CreateObject("InternetExplorer.Application")
'IE(InternetExplorer)を表示・非表示
objIE.Visible = viewFlg
'指定したURLのページを表示する
objIE.Navigate urlName
'IEが完全表示されるまで待機
Call ieCheck(objIE)
End Sub
ieViewサブルーチン内で利用されるieCheckサブルーチンは以下より確認してください。
こちらの構文と引数の内容は以下になります。尚、引数はすべて参照渡しで渡されます。
構文 | ieView(objIE,urlName,[viewFlg]) | ||||
---|---|---|---|---|---|
引数名 | データ型 | 内容 | 値の事例 | 初期値 | 省略 |
objIE | InternetExplorer | InternetExplorerオブジェクトを指定します。 | objIE,objIE2 | × | |
urlName | String | InternetExplorerに表示させたいURLの文字列を指定します。 | "http://www.vba-ie.net/" | × | |
viewFlg | Boolean | 「True」を設定するとIE(InternetExplorer)が表示され、「False」を設定すると非表示になります。規定値には「True」が設定されています。 | True,False | True | name="a2" id="a2" |
引数objIEは必須項目で、指定したURLを表示させるInternetExplorerオブジェクトを指定します。InternetExplorerオブジェクトを引数に設定することで、複数のオブジェクトを処理することができます。次の引数urlNameも必須項目で、InternetExplorerに表示させるURLを設定します。
そして最後の引数viewFlgは、IEの表示・非表示の設定値をブール型(Boolean)で指定します。こちらには引数を省略できるキーワードOptionalが設定されており、規定値が「True」の省略可能な引数となります。よって省略した場合は常にInternetExplorerが表示されます。
'IE(InternetExplorer)のオブジェクトを作成する
Set objIE = CreateObject("InternetExplorer.Application")
次にオブジェクトを参照するSetステートメントとオブジェクトを作成するCreateObject関数を利用してInternetExplorerのオブジェクトを作成します。
'IE(InternetExplorer)を表示・非表示
objIE.Visible = viewFlg
こちらでは、InternetExplorerオブジェクトのVisibleプロパティに「引数viewFlg」が設定されています。VisibleプロパティはInternetExplorerの表示・非表示の設定になりますので、「True」を設定するとInternetExplorerが表示されます。
引数viewFlgの規定値は「True」が設定されていますので、省略した場合はInternetExplorerが表示されます。非表示にしたい場合は「False」を設定してください。
'指定したURLのページを表示する
objIE.Navigate urlName
指定したURLをInternetExplorerで表示するInternetExplorerオブジェクトのNavigateメソッドの設定です。Navigateメソッドの第一引数にはieViewサブルーチンの第二引数である表示させるWebページのURLを設定しています。
'IE(InternetExplorer)が完全表示されるまで待機
Call ieCheck(objIE)
End Sub
こちらは、他のプロシージャを呼び出すCallステートメントでWebページが完全に読み込まれるまで待機処理をするieCheckサブルーチンを呼び出しています。ieCheckサブルーチンについては後ほど解説しますが、引数に待機処理させるInternetExplorerオブジェクトを設定することで指定したオブジェクトのWebページが完全に読み込まれるまで待機します。