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