広大なワークシート上にある特定の表やグラフエリアだけを、ユーザーに注目して見せたい場合があります。手動でズームスライダーを調整するのは手間ですが、VBAを使えば、指定したセル範囲がウィンドウにぴったり収まるように、ズーム率を瞬時に自動調整することが可能です。
この記事では、ActiveWindow.Zoom = True
という少し特殊なコードを使った、この便利なテクニックを解説します。
完成したVBAコード
以下が、「Sheet1」のB2:L25
の範囲を、ウィンドウサイズに合わせてズーム表示するVBAコードです。
Sub ZoomToFitRange()
' 変数を宣言します
Dim targetRange As Range
' --- 1. 画面に表示させたいセル範囲を設定 ---
Set targetRange = ThisWorkbook.Worksheets("Sheet1").Range("B2:L25")
' --- 2. 対象範囲を選択 ---
' この選択が、Zoom = True の基準になります
targetRange.Select
' --- 3. 選択範囲に合わせてズームを自動調整 ---
' この一行で、選択範囲がウィンドウに収まるようにズーム率が変更されます
ActiveWindow.Zoom = True
' --- 4. 範囲選択を解除(任意ですが推奨) ---
' 見栄えを良くするため、範囲の左上のセルを選択状態に戻します
targetRange.Cells(1, 1).Select
MsgBox "指定範囲を画面に合わせて表示しました。"
End Sub
コードのポイント解説
① 対象範囲の選択: .Select
targetRange.Select
このテクニックの最初のステップは、画面いっぱいに表示したいセル範囲を.Select
メソッドで選択することです。この**「選択されている状態」**が、次のステップの基準となります。
② ズームの実行: ActiveWindow.Zoom = True
ActiveWindow.Zoom = True
これが、この処理の核心部分です。ActiveWindow.Zoom
プロパティは、通常100
や75
といったズーム率(%)の数値を設定するために使いますが、ここに**True
という特別な値を設定**すると、Excelは「現在選択されている範囲が、ウィンドウ内にちょうど収まるようにズーム率を自動調整せよ」という命令として解釈します。
この機能は、Excelの表示
タブにある「選択範囲に合わせて拡大/縮小」コマンドをVBAで実行するのに相当します。この命令が機能するには、事前に複数のセルが選択されている必要があります。
③ 選択の解除
targetRange.Cells(1, 1).Select
ズーム調整が終わった後、範囲が選択されたままだと、見た目があまり良くありません。このコードは任意ですが、最後に範囲の左上のセル(.Cells(1, 1)
)などを選択し直すことで、ハイライトを解除し、ユーザーにとってすっきりとした見た目で処理を終えることができます。
まとめ
指定範囲を画面いっぱいに表示する手順は、以下の通りです。
- 表示したいセル範囲を**
.Select
**で選択する。 ActiveWindow.Zoom = True
を実行して、選択範囲に合わせてズームを自動調整させる。- (推奨)見栄えを整えるため、最後に単一のセルを選択し直す。
この簡単なマクロは、特定の表やグラフをユーザーに提示するダッシュボード機能や、プレゼンテーションモードのような使い方をしたい場合に非常に役立ちます。