IEウィンドウの表示倍率(拡大・縮小)の設定

<< エクセルVBAでIEウィンドウサイズ変更の可否を設定する :前の記事

前回は、IEウィンドウサイズ変更の可否の設定について解説しました。サイズ変更を禁止にした場合でもWidthプロパティHeightプロパティは有効であるということも確認できました。今回は、IEウィンドウの表示倍率の設定について解説していきます。

目次

IE(InternetExplorer)ウィンドウの表示倍率を設定する処理の流れ

以下が今回の処理の流れになります。

利用するサブルーチン・プロパティについて

今回利用するサブルーチンプロパティは以下になります。

ieViewサブルーチンとは

ieViewサブルーチンは指定したURLをInternetExplorerで起動させ、Webページが完全に読み込まれるまで待機処理をするマクロです。

ieView("IEオブジェクト","表示させたいURLの文字列","IE表示・非表示の値[省略可]","Y位置の値[省略可]","X位置の値[省略可]","幅の値[省略可]","高さの値[省略可]")

ieCheckサブルーチンとは

ieCheckサブルーチン指定したInternetExplorerオブジェクトのWebページが完全に読み込まれるまで待機処理をするマクロです。

ieCheck("IEオブジェクト")

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%で表示されます。

IEの表示倍率

解説

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("IEオブジェクト","表示倍率(パーセンテージ)の文字列")
構文ieZoom(objIE,percent)
引数名データ型内容値の事例初期値省略
objIEInternetExplorerIEオブジェクトobjIE,objIE2×
percentString表示倍率値(パーセンテージ)の文字列"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

※ドラッグ(スワイプ)すると全体を確認できます。

IEの表示倍率

解説

Sub sample()

  Dim objIE  As InternetExplorer

※ドラッグ(スワイプ)すると全体を確認できます。

まず、Dimステートメントを利用してオブジェクト変数objIEInternetExplorer型を宣言しています。これにより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

※ドラッグ(スワイプ)すると全体を確認できます。

IEのruntimestyleの設定
    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ウィンドウを最前面に表示する >>

Excel VBAでIEを思いのままに操作できるプログラミング術 Excel 2013/2010/2007/2003対応

IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。

VBAのIE制御についてのQ&A掲示板

↑VBAのIE操作で分からない事があればこちらの掲示板よりご質問ください。

ExcelのVBA初心者入門

↑こちらはVBAをマスターできるよう初心者向けのエクセルVBA入門コンテンツになります。

目次

IE操作に便利なツール

こちらでは、これまでに紹介したIE(InternetExplorer)操作で便利な機能をツール化しています。無償でダウンロードできますので、目的に合わせたご利用ください。

IEのメソッド・プロパティ

こちらでは、IE(InternetExplorer)オブジェクトのメソッド・プロパティをまとめています。

IE操作のVBA関数

こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたVBA関数をまとめています。

IE操作のステートメント

こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたステートメントをまとめています。ExcelのVBAで基本的な部分になりますので、しっかり理解しましょう。

IE制御のVBAコード

こちらでは、これまでに作成したIE(InternetExplorer)操作で役立つサブルーチンをまとめています。
全てをコピーする必要はありませんが、目的に合わせたサブルーチンをご利用ください。