IEウィンドウの表示倍率(拡大・縮小)の設定
<< エクセルVBAでIEウィンドウサイズ変更の可否を設定する :前の記事
前回は、IEウィンドウサイズ変更の可否の設定について解説しました。サイズ変更を禁止にした場合でもWidthプロパティやHeightプロパティは有効であるということも確認できました。今回は、IEウィンドウの表示倍率の設定について解説していきます。
目次
- IEウィンドウの表示倍率を設定する処理の流れ
- 利用するサブルーチン・プロパティについて
- IE(InternetExplorer)ウィンドウの表示倍率を設定するサンプルコード
- IE(InternetExplorer)ウィンドウの表示倍率を設定するサブルーチン「ieZoom」の解説
- 「ieZoom」を利用して表示倍率を設定するサンプルコード
- runtimeStyleプロパティの事例
- まとめ
IE(InternetExplorer)ウィンドウの表示倍率を設定する処理の流れ
以下が今回の処理の流れになります。
- ①変数宣言
- ②ieViewサブルーチンを利用して指定したURLをIEで起動
- ③IE表示後にZoomプロパティに表示倍率を設定してIEを表示
利用するサブルーチン・プロパティについて
- ieViewサブルーチン
- ieCheckサブルーチン
- runtimeStyleプロパティ
- Zoomプロパティ
ieViewサブルーチンとは
ieViewサブルーチンは指定したURLをInternetExplorerで起動させ、Webページが完全に読み込まれるまで待機処理をするマクロです。
ieCheckサブルーチンとは
ieCheckサブルーチンは指定したInternetExplorerオブジェクトのWebページが完全に読み込まれるまで待機処理をするマクロです。
runtimeStyleプロパティとは
runtimeStyleプロパティは、指定したオブジェクトが持つruntimeStyleオブジェクトを返します。こちらを利用することでスタイルのプロパティ値を設定し、表示倍率の変更や背景色の変更など様々なスタイルを設定することができます。
IEオブジェクト.documentオブジェクト.要素(エレメント)オブジェクト.runtimeStyle.プロパティ = 設定値
変数 = IEオブジェクト.documentオブジェクト.要素(エレメント)オブジェクト.runtimeStyle.プロパティ
参考サイト:runtimeStyle Object
Zoomプロパティとは
runtimeStyleオブジェクトのZoomプロパティは指定した要素(エレメント)の表示サイズを設定します。
IEオブジェクト.documentオブジェクト.要素(エレメント)オブジェクト.runtimeStyle.Zoom = normal/number/percentage
プロパティ値 | 説明 |
---|---|
normal | デフォルト値。規定の設定されている値で表示されます。 |
number | デフォルトの状態が1.0で、倍率の値で表示されます。 |
percentage | デフォルトの状態が100%で、パーセンテージの値で表示されます。 |
IE(InternetExplorer)ウィンドウの表示倍率を設定するサンプルコード
こちらの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)ウィンドウの表示倍率を設定するサブルーチン「ieZoom」の解説
こちらは、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サブルーチンを利用したサンプルコードを見ていきましょう。
「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オブジェクトには、様々なプロパティが用意されています。そこで、いくつか利用方法を掲載しますので、どのようなことができるのかを確認してください。
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部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。