こんにちは、Ryoです。
Excelを扱う中で、シートの表示倍率を適したサイズにすることで使い勝手を良くしたりすることもあるかと思いますが、VBAでもZoomプロパティを使用することでウィンドウ表示倍率を設定し変更うすることができますので、今回はその内容について書いていきます。
1.サンプル概要
表示倍率の変更を段階的に200%⇒300%⇒400%と変更し、その後初期値の100%に戻すサンプルになります。
このように表示倍率を変更することができます。
2.サンプルコード
Sub Sample1() Dim inizm, varzm As Long Dim i As Integer '現在の表示倍率をZoomプロパティで取得 inizm = ActiveWindow.Zoom '表示倍率初期値を変数varzmに代入 varzm = inizm For i = 1 To 3 '処理毎に100加算し、表示倍率を200⇒300⇒400とする varzm = varzm + 100 '変更する表示倍率をメッセージボックスで表示 MsgBox "ActiveSheetの表示倍率を" & varzm & _ "%に変更します", vbInformation 'アクティブシートの選択されたセルにセット倍率を書込み ActiveCell.Value = "表示倍率" & varzm & "%" 'アクティブシートの表示倍率を変更する ActiveWindow.Zoom = varzm Next i '繰り返し処理終了後、表示倍率を初期値にする MsgBox "表示倍率を初期値に戻します", vbInformation ActiveWindow.Zoom = inizm 'アクティブセルへ入力された文字列をクリア ActiveCell.Clear End Sub
ウィンドウの表示倍率を設定・変更するにはZoomプロパティを使用します。
構文:オブジェクト.Zoom = expression
このZoomプロパティはウィンドウの表示倍率を取得・設定するプロパティです。「指定可能値は10~400」の範囲、パーセント単位になります。また、本プロパティで設定できるのは「アクティブシートのみ」という点も覚えておくと良いと思います。
サンプルコードでは最初に表示倍率を取得(初期値)し、その数値に加算して表示倍率を可変させて表示していますが、このように「値の取得も可能」なので、使い勝手が良いと思います。
◆参考:選択範囲に合わせて表示倍率を設定
ZoomプロパティにTrueを指定すると、現在選択されている範囲に合わせてズームすることができます。
例として以下画像の表を選択して処理を行います。
Sub Sample2() '表全体を選択する Cells(1, 2).CurrentRegion.Select '選択範囲に合わせて表示倍率を設定する ActiveWindow.Zoom = True p = ActiveWindow.Zoom MsgBox "表示倍率を初期値に戻します", vbInformation ActiveWindow.Zoom = 100 End Sub
実行すると、このように選択した範囲に合わせて表示倍率が設定されます。
3.まとめ
見やすさという事を考えると、表示サイズや大きさというのも大事なことなのでユーザー側が任意に出力結果の表示倍率を変えられるように作ることもありますから、このような機能もVBAで扱えることを知っておくのは良いと思います。
但し、上にも書きましたがアクティブシートでのみ設定できるものなので、活用を検討する際はその点にご留意いただければと思います。
以上、ウィンドウの表示倍率を設定する方法についてでした!今回の記事が何かの参考になれば幸いです。
Ryo