VBSでのブラウザ操作でIEが利用されているわけ

VBSでのブラウザ操作でIEが利用されているわけ

VBSでのブラウザ操作でIEが利用されているわけ

ブラウザとしては開発も終わったIEですが、スクレイピングを含めたシステム自動化ではとてもよく利用されています。

その理由はVBS(VBA/VBE)との親和性の高さです。

例えば、IEを使うとBusyで読込中か否かを取得して読込が完了したら他の動作を行うなどの操作が出来るようになります。

SETしたオブジェクトに対して「プロパティ―で知る事の出来る情報量が他のブラウザと比べて多い」のが今でもIEが利用される理由の一つです。

IEで利用できるプロパティの具体例

プロパティ データ型 内容
Application Object アプリケーションオートメーションオブジェクトにアクセス可能であれば、そのオートメーションオブジェクトを返す。
Visible Boolean アプリケーションの表示・非表示を設定します。
Busy Boolean Webページが読み込み中かどうかを示す。
ReadyState tagREADYSTATE IEオブジェクトのドキュメントの読み込み状態を示します。
document.readyState tagREADYSTATE IEのdocumentオブジェクトの読み込み状態を示します。
Top Long InternetExplorerウィンドウの垂直位置(ピクセル)を設定します。
Left Long InternetExplorerウィンドウの水平位置(ピクセル)を設定します。
Width Long InternetExplorerウィンドウの幅(ピンクセル)を設定します。
Height Long InternetExplorerウィンドウの高さ(ピンクセル)を設定します。
AddressBar Boolean アドレスバーを表示・非表示させます。
MenuBar Boolean メニューバーを表示・非表示に設定。
StatusBar Boolean ステータスバーを表示・非表示に設定。
ToolBar Long ツールバーが表示されているのを制御。
FullScreen Boolean ウィンドウを最大化し、ステータスバー、ツールバー、メニューバー、およびタイトルバーを非表示に設定。
TheaterMode Boolean InternetExplorerのシアターモードを設定。
Resizable Boolean ウィンドウサイズ変更の可否を設定。
Offline Boolean オブジェクトがオフラインモードで動作しているかを示す値を取得。
RegisterAsBrowser Boolean オブジェクトがトップレベルのブラウザウィンドウとして登録されているかどうかを示す値を取得。
RegisterAsDropTarget Boolean オブジェクトがナビゲーションのためのドロップターゲットとして登録されているかどうかを示す値を取得。
Silent Boolean 任意のダイアログボックスを表示することかどうかを設定。
TopLevelContainer Boolean 指定したオブジェクトがトップレベルのオブジェクトである場合にTrueを返却。
HWND Long 指定したInternetExplorerのHWNDを返却。
Container Object コンテナ/親へのオブジェクト参照を取得。
Document Object 指定したドキュメントを返却。
Parent Object コンテナ/親が存在する場合は、そのオートメーションオブジェクトのオートメーションオブジェクトを返却。
Path String InternetExplorerアプリケーションのフォルダパスを返却。
FullName String InternetExplorerアプリケーションのファイルパスを返却。
Name String アプリケーションの名前を返却。
LocationName String 指定したページのタイトルを取得。
LocationURL String 指定したページのURLを取得。
StatusText String ステータスバーのテキストを取得。
Type String 含まれているドキュメントオブジェクトの型を返却。

プロパティの指定だけでこんな情報を取得する事が出来ます。

同じことはchromeなどのブラウザでも出来るが回り道が必要になる

同様の情報、他のブラウザでも取得は可能です。
でも、いくつか回り道して情報を取る形になってきます。

出来ないことはない、でもコードが長くなってミスや予期せぬ事態が増えます。
コードはシンプルな方が良いですもんね。

まとめ

IEでもBusyを取れない事があります。
クローラー対策も含めてJSでゴリゴリに組んだページなどでこういった課題は顕著に出てきます。
出来ると思って過信はしちゃだめですね。