VBAのIE(InternetExplorer)制御のIEウィンドウの表示倍率設定について解説しています。
<< エクセルVBAでIEウィンドウサイズ変更の可否を設定する :前の記事
前回は、IEウィンドウサイズ変更の可否の設定について解説しました。サイズ変更を禁止にした場合でもWidthプロパティやHeightプロパティは有効であるということも確認できました。今回は、IEウィンドウの表示倍率の設定について解説していきます。
以下が今回の処理の流れになります。
ieViewサブルーチンは指定したURLをInternetExplorerで起動させ、Webページが完全に読み込まれるまで待機処理をするマクロです。
ieCheckサブルーチンは指定したInternetExplorerオブジェクトのWebページが完全に読み込まれるまで待機処理をするマクロです。
runtimeStyleプロパティは、指定したオブジェクトが持つruntimeStyleオブジェクトを返します。こちらを利用することでスタイルのプロパティ値を設定し、表示倍率の変更や背景色の変更など様々なスタイルを設定することができます。
IEオブジェクト.documentオブジェクト.要素(エレメント)オブジェクト.runtimeStyle.プロパティ = 設定値
変数 = IEオブジェクト.documentオブジェクト.要素(エレメント)オブジェクト.runtimeStyle.プロパティ
参考サイト:runtimeStyle Object
runtimeStyleオブジェクトのZoomプロパティは指定した要素(エレメント)の表示サイズを設定します。
IEオブジェクト.documentオブジェクト.要素(エレメント)オブジェクト.runtimeStyle.Zoom = normal/number/percentage
プロパティ値 | 説明 |
---|---|
normal | デフォルト値。規定の設定されている値で表示されます。 |
number | デフォルトの状態が1.0で、倍率の値で表示されます。 |
percentage | デフォルトの状態が100%で、パーセンテージの値で表示されます。 |
こちらのVBAコードは、「VBAのIE制御」サイトのトップページをIEで起動させてから表示倍率を変更するマクロです。
Sub sample()
Dim objIE As InternetExplorer
'本サイトをIE(InternetExplorer)で起動
Call ieView(objIE, "http://www.vba-ie.net/")
'IEの表示倍率50%で設定
objIE.document.body.runtimeStyle.Zoom = "50%"
End Sub
※ドラッグ(スワイプ)すると全体を確認できます。
「VBAのIE制御」サイトのトップページを表示後に表示倍率が50%で表示されます。
Sub sample()
Dim objIE As InternetExplorer
※ドラッグ(スワイプ)すると全体を確認できます。
こちらはSubステートメントに引数の設定がないsampleプロシージャになります。 まずは、変数宣言でメモリ領域を割り当てるDimステートメントを利用してオブジェクト変数objIEに「InternetExplorer型」を変数宣言しています。
'IEの表示倍率50%で設定
objIE.document.body.runtimeStyle.Zoom = "50%"
End Sub
※ドラッグ(スワイプ)すると全体を確認できます。
次にruntimeStyleオブジェクトのZoomプロパティを利用して表示倍率を「50%」に設定します。今回は、パーセンテージで設定しましたが「0.5」と倍率で設定することも可能です。最後はEndステートメントを利用してプロシージャを終了させます。
こちらでは、runtimeStyleオブジェクトのZoomプロパティにフォーカスして解説しましたが、「objIE.document.body」の部分については、body要素(エレメント)のオブジェクトを表しますが「HTMLエレメントの操作」で詳しく解説していますので、そちらを確認してください。
個人的にこちらの処理もよく利用するのでサブルーチン化させていきます。
こちらは、IE(InternetExplorer)ウィンドウの表示倍率を設定するサブルーチンになります。
Sub ieZoom(objIE As InternetExplorer, _
percent As String)
objIE.document.body.runtimeStyle.Zoom = percent
End Sub
※ドラッグ(スワイプ)すると全体を確認できます。
こちらはSubステートメントに引数を2つ設定しているieZoomサブルーチンになります。こちらの構文と引数の内容は以下になります。尚、引数はすべて参照渡しで渡されます。
構文 | ieZoom(objIE,percent) | ||||
---|---|---|---|---|---|
引数名 | データ型 | 内容 | 値の事例 | 初期値 | 省略 |
objIE | InternetExplorer | IEオブジェクト | objIE,objIE2 | × | |
percent | String | 表示倍率値(パーセンテージ)の文字列 | "50%" | × |
引数objIEは必須項目で、表示倍率を設定するInternetExplorerオブジェクトを指定します。InternetExplorerオブジェクトを引数に設定することで、複数のオブジェクトを処理することができます。次の引数percentも必須項目で、表示倍率値(パーセンテージ)の文字列を設定します。
こちらを利用することで、IE(InternetExplorer)の表示倍率を変更し拡大・縮小することができます。それでは、実際にieZoomサブルーチンを利用したサンプルコードを見ていきましょう。
Sub sample()
Dim objIE As InternetExplorer
'本サイトをIE(InternetExplorer)で起動
Call ieView(objIE, "http://www.vba-ie.net/")
'IEの表示倍率50%で設定
Call ieZoom(objIE, "50%")
End Sub
※ドラッグ(スワイプ)すると全体を確認できます。
Sub sample()
Dim objIE As InternetExplorer
※ドラッグ(スワイプ)すると全体を確認できます。
まず、Dimステートメントを利用してオブジェクト変数objIEにInternetExplorer型を宣言しています。これによりInternetExplorerオブジェクトを作成した際にプロパティやメソッドを利用できるようになりました。
'本サイトをIE(InternetExplorer)で起動
Call ieView(objIE, "http://www.vba-ie.net/")
※ドラッグ(スワイプ)すると全体を確認できます。
次にCallステートメントを利用してieViewサブルーチンを呼び出しています。第一引数にはオブジェクト変数の「objIE」を第二引数には表示させるURLの「http://www.vba-ie.net/」を設定しています。これにより本サイトがInternetExplorerで表示されます。
'IEの表示倍率50%で設定
Call ieZoom(objIE, "50%")
End Sub
※ドラッグ(スワイプ)すると全体を確認できます。
こちらもCallステートメントを利用してieZoomサブルーチンを呼び出しています。第一引数にはオブジェクト変数の「objIE」を第二引数には表示倍率の「50%」を設定しています。これにより本サイトの表示倍率が50%で表示されます。
今回は表示倍率の解説でしたが、runtimeStyleオブジェクトには、様々なプロパティが用意されています。そこで、いくつか利用方法を掲載しますので、どのようなことができるのかを確認してください。
Sub sample()
Dim objIE As InternetExplorer
'本サイトをIE(InternetExplorer)で起動
Call ieView(objIE, "http://www.vba-ie.net/")
With objIE.document.body.runtimeStyle
.backgroundColor = "black"
.FontSize = "120%"
.Zoom = "80%"
End With
objIE.document.GetElementsByTagName("h1")(0).runtimeStyle.cssText = "color: #f00;font-size: 80%;"
End Sub
※ドラッグ(スワイプ)すると全体を確認できます。
With objIE.document.body.runtimeStyle
.backgroundColor = "black"
.FontSize = "120%"
.Zoom = "80%"
End With
End Sub
※ドラッグ(スワイプ)すると全体を確認できます。
こちらは、runtimeStyleオブジェクトに3つのプロパティを設定しています。backgroundColorプロパティでは背景色を黒に、FontSizeプロパティではフォントサイズを120%に、Zoomプロパティでは表示倍率を80%に設定しています。
objIE.document.GetElementsByTagName("h1")(0).runtimeStyle.cssText = "color: #f00;font-size: 80%;"
※ドラッグ(スワイプ)すると全体を確認できます。
こちらはh1タグのフォントカラーを「赤」に、フォントサイズを「80%」に設定しています。runtimeStyleオブジェクトのcssTextプロパティはcssの記述方法で設定できますので、cssを理解している方にとってはなじみやすい書き方かと思います。
また、このように全体的な設定だけでなく、一部の要素(エレメント)だけに設定することもできますので、覚えておきましょう。
尚、今回はruntimeStyleプロパティを利用しましたが、Styleプロパティでも同じような設定ができます。こちらの違いについては、「Style・runtimeStyle・currentStyleプロパティの違い」で解説していますので、こちらを確認してください。
今回は、IEウィンドウの表示倍率(拡大・縮小)を設定する方法について解説しましたが、いくつかプロパティを挙げたように自由にスタイルを設定することができます。
いつも見ているサイトが読みにくい場合や広告だけ削除したい場合など、は自由にカスタマイズして表示させることも可能です。(Webブラウザのアドオン機能でおなじようなものがあるのでそちらを利用したほうが早いかもしれませんが・・・)
次回はIEウィンドウを最前面に表示する方法について解説していきます。
次の記事: エクセルVBAでIEウィンドウを最前面に表示する >>
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)操作で役立つサブルーチンをまとめています。
全てをコピーする必要はありませんが、目的に合わせたサブルーチンをご利用ください。