VBAのIE(InternetExplorer)制御でオートメーションオブジェクトを返すApplicationプロパティについて解説しています。
<< エクセルVBAのInternetExplorerオブジェクトのAddressBarプロパティ :前の記事
こちらでは、エクセルVBAで利用するInternetExplorerオブジェクトのApplicationプロパティについて解説しています。
プロパティとはオブジェクトの属性を指します。属性とは、そのオブジェクトの情報そのものです。プロパティはその値を取得したり、設定することもできます。プロパティを利用するにはオブジェクト名とプロパティ名の間に「.(ピリオド)」で結んで記述します。
オブジェクト名.プロパティ名
また、プロパティを設定する場合は以下のように「=(イコール)」を記述し設定値を代入します。
オブジェクト名.プロパティ名 = 設定値
InternetExplorerオブジェクトのApplicationプロパティはInternetExplorerアプリケーションのオートメーションオブジェクトにアクセスが可能であれば、そのオートメーションオブジェクトを返します。
また、Applicationプロパティは読み取り専用のプロパティになります。
Set オブジェクト変数 = InternetExplorerオブジェクト.Application
構文 | object.Application | |
---|---|---|
データ型(戻り値) | オブジェクト型(Object) | |
引数 | 省略 | 説明 |
object | × | InternetExplorerオブジェクトを指定します。 |
こちらのVBAコードは、ApplicationプロパティでIEオブジェクトを取得するマクロです。
Sub sample()
Dim objIE As InternetExplorer
Dim objIE2 As InternetExplorer
'IE(InternetExplorer)のオブジェクトを作成する
Set objIE = CreateObject("InternetExplorer.Application")
'IE(InternetExplorer)を表示する
objIE.Visible = True
'オブジェクトをセットします。
Set objIE2 = objIE.Application
'指定したURLのページを表示する
objIE2.navigate "http://www.vba-ie.net/"
'完全にページが表示されるまで待機する
Do While objIE2.Busy = True Or objIE2.readyState <> 4
DoEvents
Loop
MsgBox "objIEオブジェクトを開放してApplicationプロパティを設定します。"
'オブジェクト開放
Set objIE = Nothing
'オブジェクトがないためエラーになります。
Set objIE2 = objIE.Application
End Sub
※ドラッグ(スワイプ)すると全体を確認できます。
①IEを通常通り起動します。(既定値:Application = True)
②メッセージボックスが表示され、「OK」を押下します。
③Applicationプロパティが「False」に設定され、IE(InternetExplorer)のアドレスバーが非表示になります。
Sub sample()
Dim objIE As InternetExplorer
Dim objIE2 As InternetExplorer
※ドラッグ(スワイプ)すると全体を確認できます。
こちらはSubステートメントに引数の設定がないsampleプロシージャになります。 まずは、変数宣言でメモリ領域を割り当てるDimステートメントを利用してオブジェクト変数objIE,objIE2に「InternetExplorer型」を変数宣言しています。
これによりInternetExplorerオブジェクトを作成した際にプロパティやメソッドを利用できるようになりました。
'IE(InternetExplorer)のオブジェクトを作成する
Set objIE = CreateObject("InternetExplorer.Application")
※ドラッグ(スワイプ)すると全体を確認できます。
次にオブジェクトを参照するSetステートメントとオブジェクトを作成するCreateObject関数を利用してInternetExplorerのオブジェクトを作成します。
'IE(InternetExplorer)を表示する
objIE.Visible = True
※ドラッグ(スワイプ)すると全体を確認できます。
こちらでは、InternetExplorerオブジェクトのVisibleプロパティに「True」が設定されています。VisibleプロパティはIE(InternetExplorer)の表示・非表示の設定になりますので、「True」を設定するとIE(InternetExplorer)が表示されます。
'オブジェクトをセットします。
Set objIE2 = objIE.Application
※ドラッグ(スワイプ)すると全体を確認できます。
こちらは、Setステートメントを利用してInternetExplorerのオブジェクトのApplicationプロパティで返ってきたオートメーションオブジェクトを参照しています。これによりオブジェクト変数objIE2でもInternetExplorerオブジェクトを操作することができます。
'指定したURLのページを表示する
objIE2.navigate "http://www.vba-ie.net/"
※ドラッグ(スワイプ)すると全体を確認できます。
こちらは指定したURLをIE(InternetExplorer)で表示するInternetExplorerオブジェクトのNavigateメソッドの設定です。第一引数は表示させるWebページのURLの設定になりますので「http://www.vba-ie.net/」を設定すると「VBAのIE制御」サイトのトップページが表示されます。
今回は、オブジェクト変数objIE2に対して処理を行いましたが、オブジェクト変数は値の代入ではなくオブジェクトの参照ですので、オブジェクト変数objIEに対して処理をしても同じ結果となります。
'完全にページが表示されるまで待機する
Do While objIE.Busy = True Or objIE.ReadyState <> 4
DoEvents
Loop
※ドラッグ(スワイプ)すると全体を確認できます。
こちらは、Do~Loop ステートメントを利用して、ページが完全に読み込まれるまでループさせる処理を行っています。それぞれのプロパティでWebページが完全に読み込まれた場合の戻り値は、Busyプロパティが「False」、ReadyStateプロパティが「4」になりますので、たとえBusyプロパティで「False」になったとしてもReadyStateプロパティが「4」でない場合はループから抜け出すことはできません。
こちらを抜け出すためには、BusyプロパティとReadyStateプロパティの両方が完全に読み込み完了状態になった場合のみとなります。こちらの処理について「http://www.vba-ie.net/ie/navigate.html」で詳しく解説していますので、確認してください。
MsgBox "objIEオブジェクトを開放してApplicationプロパティを設定します。"
※ドラッグ(スワイプ)すると全体を確認できます。
こちらは、MSgBox関数を利用してメッセージボックスが表示されます。「OK」を押下すると次の処理へ移ります。
'オブジェクト開放
Set objIE = Nothing
※ドラッグ(スワイプ)すると全体を確認できます。
こちらは、Setステートメントを利用して、Nothingを指定することでオブジェクト変数objIEを解除します。これでInternetExplorerオブジェクトを利用することができなくなりました。
'オブジェクトがないためエラーになります。
Set objIE2 = objIE.Application
End Sub
※ドラッグ(スワイプ)すると全体を確認できます。
こちらは、SetステートメントとApplicationプロパティを利用して、再度オブジェクト変数objIE2を生成しようとしていますが、オブジェクト変数objIEには何も設定されていませんので、実行時エラーでエラーが表示されます。
最後はEndステートメントを利用してsampleプロシージャを終了させます。
プロパティ名 | 内容 |
---|---|
AddressBar | アドレスバーを表示・非表示させます。 |
Application | アプリケーションオートメーションオブジェクトにアクセス可能であれば、そのオートメーションオブジェクトを返す。 |
Busy | Webページが読み込み中かどうかを示す。 |
Container | コンテナ/親へのオブジェクト参照を取得します。 |
Document | 指定したドキュメントを返します。 |
FullName | InternetExplorerアプリケーションのファイルパスを返します。 |
FullScreen | ウィンドウを最大化し、ステータスバー、ツールバー、メニューバー、およびタイトルバーを非表示にします。 |
Height | InternetExplorerウィンドウの高さ(ピンクセル)を設定します。 |
HWND | 指定したInternetExplorerのHWNDを返します。 |
Left | InternetExplorerウィンドウの水平位置(ピクセル)を設定します。 |
LocationName | 指定したページのタイトルを取得します。 |
LocationURL | 指定したページのURLを取得します。 |
MenuBar | メニューバーを表示・非表示させます。 |
Name(規定プロパティ) | アプリケーションの名前を返します。 |
Offline | InternetExplorerのオフライン/オンラインを切り替えます。(オフラインの場合は、キャッシュから読み込む) |
Parent | コンテナ/親が存在する場合は、そのオートメーションオブジェクトのオートメーションオブジェクトを返します。 |
Path | InternetExplorerアプリケーションのフォルダパスを返します。 |
ReadyState | IEオブジェクトのドキュメントの読み込み状態を示します。 |
RegisterAsBrowser | OCが(ターゲットの名前解決のための)トップレベルのブラウザとして登録します。 |
RegisterAsDropTarget | OCは、ナビゲーションのためのドロップターゲットとして登録します |
Resizable | ウィンドウサイズ変更の可否を設定します。 |
Silent | 任意のダイアログボックスを表示することかどうかを設定する。 |
StatusBar | ステータスバーを表示・非表示させます。 |
StatusText | ステータスバーのテキストを取得します。 |
TheaterMode | InternetExplorerのシアターモードを設定します。 |
ToolBar | ツールバーが表示されているのを制御します。 |
Top | InternetExplorerウィンドウの垂直位置(ピクセル)を設定します。 |
TopLevelContainer | 指定したオブジェクトがトップレベルのオブジェクトである場合にTrueを返します。 |
Type | 含まれているドキュメントオブジェクトの型を返します。 |
Visible | アプリケーションの表示・非表示を設定します。 |
Width | InternetExplorerウィンドウの幅(ピンクセル)を設定します。 |
メソッド名 | 内容 |
---|---|
ClientToWindow | ウィンドウ·サイズにクライアントのサイズを変換します。 |
ExecWB | のIOleCommandTarget :: Execの |
GetProperty | オブジェクトのコンテキスト内のプロパティvtValueための関連する値を取得します。 |
GoBack | 履歴リスト内の前の項目に移動します。 |
GoForward | 履歴リスト内の次の項目に移動します。 |
GoHome | 家に帰る/ページを開始します。 |
GoSearch | 検索ページに移動します。 |
Navigate | URLまたはファイルに移動します。 |
Navigate2 | URLまたはファイルまたはPIDLに移動します。 |
PutProperty | オブジェクトのコンテキストで名前szPropertyに関連付けますvtValue。 |
QueryStatusWB | |
Quit | アプリケーションを終了し、開いているドキュメントを閉じます。 |
Refresh | 現在閲覧ページを更新します。 |
Refresh2 | 現在閲覧ページを更新します。 |
ShowBrowserBar | のClsidにBrowserBarを設定 |
Stop | ファイルを開く停止します。 |
次の記事: エクセルVBAのInternetExplorerオブジェクトのBusyプロパティ >>
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
VBAのIE制御についてのQ&A掲示板↑VBAのIE操作で分からない事があればこちらの掲示板よりご質問ください。
ExcelのVBA初心者入門↑こちらはVBAをマスターできるよう初心者向けのエクセルVBA入門コンテンツになります。
こちらでは、これまでに紹介したIE(InternetExplorer)操作で便利な機能をツール化しています。無償でダウンロードできますので、目的に合わせたご利用ください。
こちらでは、IE(InternetExplorer)オブジェクトのメソッド・プロパティをまとめています。
こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたVBA関数をまとめています。
こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたステートメントをまとめています。ExcelのVBAで基本的な部分になりますので、しっかり理解しましょう。
こちらでは、これまでに作成したIE(InternetExplorer)操作で役立つサブルーチンをまとめています。
全てをコピーする必要はありませんが、目的に合わせたサブルーチンをご利用ください。