VBAのIE(InternetExplorer)オブジェクトのTopプロパティについて解説しています。
TopプロパティはWebブラウザのY位置を指定することができます。
IEオブジェクトのTopプロパティはディスプレイ画面の上端からWebブラウザの上端までの距離の値を取得または設定をすることができます。基準はディスプレイ画面の左上からになります。また、単位はピクセル(1ピクセル=1/96インチ)になります。
構文 | object.Top [= Double] | |
---|---|---|
引数 | 省略 | 説明 |
object | × | 表示させるIEオブジェクトの名前を指定します。 |
Double | ▲ | IEオブジェクトの位置の座標を示す値あるいは数値式を指定します。値を設定する場合は省略できませんが、値を取得する場合は省略ができます。 |
Sub sample()
Dim objIE As InternetExplorer
'IE(InternetExplorer)のオブジェクトを作成する
Set objIE = CreateObject("InternetExplorer.Application")
'IE(InternetExplorer)を表示する
objIE.Visible = True
'指定したURLのページを表示する
objIE.navigate "http://www.vba-ie.net/"
'完全にページが表示されるまで待機する
Do While objIE.Busy = True Or objIE.readyState <> 4
DoEvents
Loop
'完全にドキュメントが読み込まれるまで待機する
Do Until objIE.document.ReadyState = "complete"
DoEvents
Loop
'ディスプレイ上端から100ピクセルの位置に表示
objIE.Top = 100 'Y位置(上下)
End Sub
※ドラッグ(スワイプ)すると全体を確認できます。
IEを起動しディスプレイ上端から100ピクセルの位置に表示されます。
単位はピクセルです。
Sub sample()
Dim objIE As InternetExplorer
※ドラッグ(スワイプ)すると全体を確認できます。
sampleのSubステートメントは引数の設定なしです。次に、Dimステートメントを利用して変数objIEをInternetExplorer型で宣言します。
'IE(InternetExplorer)のオブジェクトを作成する
Set objIE = CreateObject("InternetExplorer.Application")
※ドラッグ(スワイプ)すると全体を確認できます。
SetステートメントとCreateObject関数を利用してIEのオブジェクトを作成します。オブジェクト作成によりプロパティやメソッドを利用することができます。
'IE(InternetExplorer)を表示する
objIE.Visible = True
※ドラッグ(スワイプ)すると全体を確認できます。
VisibleプロパティにTrueを設定することで、ブラウザを表示させます。
'指定したURLのページを表示する
objIE.Navigate "http://www.vba-ie.net/"
※ドラッグ(スワイプ)すると全体を確認できます。
Navigateメソッドの第一引数に「http://www.vba-ie.net/」を設定しています。これにより「VBAのIE制御」サイトのトップページが表示されます。
'完全にページが表示されるまで待機する
Do While objIE.Busy = True Or objIE.ReadyState <> 4
DoEvents
Loop
※ドラッグ(スワイプ)すると全体を確認できます。
こちらは、Do...Loop ステートメントを利用して、ページが完全に読み込まれるまでループさせる処理を行っています。
それぞれのプロパティでWebページが完全に読み込まれた場合の戻り値は、BusyプロパティがFalse、ReadyStateプロパティが4になりますので、たとえBusyプロパティでFalseになったとしてもReadyStateプロパティが4でない場合はループから抜け出すことはできません。
こちらを抜け出すためには、BusyプロパティとReadyStateプロパティの両方が完全に読み込み完了状態になった場合のみとなります。
ということは、ページが完全に読み込まれるまで次の処理へ移動せず待機するということになります。
ちなみにDoEvents関数を設定しているのでは、無限ループに陥った場合に制御を戻しておくためです。
'完全にドキュメントが読み込まれるまで待機する
Do Until objIE.document.ReadyState = "complete"
DoEvents
Loop
※ドラッグ(スワイプ)すると全体を確認できます。
こちらも、Do...Loop ステートメントを利用して、ドキュメントが完全に読み込まれるまでループさせる処理を行っています。objIEオブジェクトのReadyStateプロパティは読み込み完了時に4を返しますが、HTMLDocumentオブジェクトのReadyStateプロパティは"complete"を返します。
どのオブジェクトのReadyStateプロパティかによって戻り値が異なりますので注意が必要です。ここでは、"complete"を返したときにループ処理を抜けるような処理をしています。
'ディスプレイ上端から100ピクセルの位置に表示
objIE.Top = 100 'Y位置(上下)
※ドラッグ(スワイプ)すると全体を確認できます。
Topプロパティに100を設定しています。これによりディスプレイ上端から100ピクセルの位置にブラウザが表示されます。
End Sub
※ドラッグ(スワイプ)すると全体を確認できます。
最後はEndステートメントを利用してsampleプロシージャを終了させます。
Topプロパティは、複数のIE(InternetExplorer)を表示させたり、業務内容によって指定した方が便利な場合に利用します。
プロパティ | データ型 | 内容 |
---|---|---|
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 | 含まれているドキュメントオブジェクトの型を返します。 |
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
↑VBAのIE操作で分からない事があればこちらの掲示板よりご質問ください。
ExcelのVBA初心者入門↑こちらはVBAをマスターできるよう初心者向けのエクセルVBA入門コンテンツになります。
こちらでは、これまでに紹介したIE(InternetExplorer)操作で便利な機能をツール化しています。無償でダウンロードできますので、目的に合わせたご利用ください。
こちらでは、IE(InternetExplorer)オブジェクトのメソッド・プロパティをまとめています。
こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたVBA関数をまとめています。
こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたステートメントをまとめています。ExcelのVBAで基本的な部分になりますので、しっかり理解しましょう。
こちらでは、これまでに作成したIE(InternetExplorer)操作で役立つサブルーチンをまとめています。
全てをコピーする必要はありませんが、目的に合わせたサブルーチンをご利用ください。