拡大縮小表示の設定

ブック

VBAで拡大縮小表示の設定

 ExcelVBAで、シートごとに拡大縮小表示する事が可能です。
 但し、シートオブジェクトで設定するのではなく ActiveWindow オブジェクトのプロパティを設定する事になります。
 このため、現在表示されていないシートを設定したい場合は、一旦 Select してからアクティブにしてから設定する必要があります。
 
 もし、元のシートに戻したい場合は、事前に現在のアクティブシートがどれなのかを覚えておく必要があります。
 詳しくコードを見ていきましょう。

拡大表示設定の基本

 拡大縮小表示の基本的なコードは以下のようになります。
 Zoomプロパティに%で値を設定します。
 以下は110%表示する例です。
 
 ActiveWindow.Zoom = 110

シートを指定して拡大縮小表示を設定
 Zoomプロパティはシートオブジェクトには無いので、一旦、シートをSelect してアクティブにする必要があります。

Sub ZoomTest()
    Worksheets("Sheet2").Select
    ActiveWindow.Zoom = 110
End Sub

複数のシートで拡大縮小表示を設定

 複数のシートで設定したい場合は、上記のコードを繰返しても良いのですが、 Worksheets の引数に配列で指定すればシートを複数選択できるのでまとめて拡大縮小表示設定する事が出来ます。
 以下では Array配列に選択したいシート名をセットしてシートを複数選択してから拡大縮小表示を設定しています。

Sub ZoomTest2()
    Dim arr
    arr = Array("Sheet2", "Sheet3", "Sheet4")
    Worksheets(arr).Select
    ActiveWindow.Zoom = 120
End Sub

元のシート表示に戻したい

 操作前の表示に戻したい場合は、元のシートがどれなのかを記録しておく必要があります。
 操作後に元のシートを選択すれば良いでしょう。

Sub ZoomTest3()
    Dim NowSheetNum As Long
    NowSheetNum = ActiveSheet.Index
    
    Dim arr
    arr = Array("Sheet2", "Sheet3", "Sheet4")
    Worksheets(arr).Select
    ActiveWindow.Zoom = 120
    
    Worksheets(NowSheetNum).Select
End Sub

 この例では元のシートのインデックス番号を保持していますが、文字列変数にシート名を保持する方法でもOKです。

まとめ

 シート表示の拡大縮小設定は、シートオブジェクトではない点に注意しましょう。
 このため、拡大縮小設定したいシートをアクティブにする必要があります。
 
 最後の、現在のシートを保持する方法は他の場面でもよく使うので覚えておくと役に立つと思います。

タイトルとURLをコピーしました