エクセルVBAで指定したURLをIEで表示させるサブルーチン「ieView」

VBAのIE(InternetExplorer)制御で指定したURLをInternetExplorerで起動させ、Webページが完全に読み込まれるまで待機処理をするサブルーチンです。

「ieViewサブルーチン」の詳しい解説については、以下より確認してください。

データ抽出やインターフェースの自動化にしても必ず最初は指定した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サブルーチンは以下より確認してください。

ieCheck

こちらの構文と引数の内容は以下になります。尚、引数はすべて参照渡しで渡されます。

ieView("IEオブジェクト","表示させたいURLの文字列","IE表示・非表示の値[省略可]")
構文ieView(objIE,urlName,[viewFlg])
引数名データ型内容値の事例初期値省略
objIEInternetExplorerInternetExplorerオブジェクトを指定します。objIE,objIE2×
urlNameStringInternetExplorerに表示させたいURLの文字列を指定します。"http://www.vba-ie.net/"×
viewFlgBoolean「True」を設定するとIE(InternetExplorer)が表示され、「False」を設定すると非表示になります。規定値には「True」が設定されています。True,FalseTruename="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ページが完全に読み込まれるまで待機します。