InternetExplorerオブジェクトのApplicationプロパティ
<< エクセルVBAのInternetExplorerオブジェクトのAddressBarプロパティ :前の記事
こちらでは、エクセルVBAで利用するInternetExplorerオブジェクトのApplicationプロパティについて解説しています。
プロパティとはオブジェクトの属性を指します。属性とは、そのオブジェクトの情報そのものです。プロパティはその値を取得したり、設定することもできます。プロパティを利用するにはオブジェクト名とプロパティ名の間に「.(ピリオド)」で結んで記述します。
オブジェクト名.プロパティ名
また、プロパティを設定する場合は以下のように「=(イコール)」を記述し設定値を代入します。
オブジェクト名.プロパティ名 = 設定値
目次
- Applicationプロパティとは
- ApplicationプロパティでIEオブジェクトを取得するサンプルコード
- InternetExplorerオブジェクトのプロパティ
- InternetExplorerオブジェクトのメソッド
Applicationプロパティとは
InternetExplorerオブジェクトのApplicationプロパティはInternetExplorerアプリケーションのオートメーションオブジェクトにアクセスが可能であれば、そのオートメーションオブジェクトを返します。
また、Applicationプロパティは読み取り専用のプロパティになります。
Set オブジェクト変数 = InternetExplorerオブジェクト.Application
構文 | object.Application | |
---|---|---|
データ型(戻り値) | オブジェクト型(Object) | |
引数 | 省略 | 説明 |
object | × | InternetExplorerオブジェクトを指定します。 |
ApplicationプロパティでIEオブジェクトを取得するサンプルコード
こちらの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プロシージャを終了させます。
InternetExplorerオブジェクトのプロパティ
プロパティ名 | 内容 |
---|---|
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ウィンドウの幅(ピンクセル)を設定します。 |
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部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。