【VBA】Excelの表示倍率を順番に切り替える(ズームサイクル)マクロ

目次

はじめに

Excelでの作業中、細かいデータを見るときは拡大し、シート全体を俯瞰したいときは縮小する、というように、表示倍率(ズーム)の変更は頻繁に行う操作の一つです。

しかし、毎回右下のスライダーを操作したり、Ctrlキーを押しながらマウスホイールを転がすのは、少し手間がかかりますよね。もし、ボタン一つで「75% → 100% → 150% → 75%…」のように、決まった倍率を順番に切り替えられたら非常に便利です。

この記事では、実行するたびに設定した表示倍率を巡回(サイクル)する、便利なVBAマクロの作り方を分かりやすく解説します。


表示倍率を巡回させるVBAサンプルコード

ここで紹介するコードは、現在の表示倍率に応じて、あらかじめ設定しておいた倍率リストの中から次の倍率へ変更する、という処理を行います。

ここでは、75%, 100%, 125% の3つの倍率を順番に切り替えるマクロを作成します。

完成コード

' 表示倍率を 75% -> 100% -> 125% -> 75%... の順で切り替える
Sub CycleZoomLevel()

    '== 変数と設定を定義します ==
    Dim zoomOptions As Variant
    Dim currentZoom As Long
    Dim nextZoom As Long
    Dim i As Long
    
    ' 切り替えたい倍率のリスト(%)
    zoomOptions = Array(75, 100, 125)
    
    ' 現在の表示倍率を取得
    currentZoom = ActiveWindow.Zoom
    
    ' デフォルトの次の倍率を設定(リストの最初の値)
    nextZoom = zoomOptions(0)

    '== 現在の倍率がリストのどこにあるかを探し、次の倍率を決定します ==
    For i = LBound(zoomOptions) To UBound(zoomOptions)
        If currentZoom = zoomOptions(i) Then
            ' 現在の倍率がリストの最後でなければ、次の倍率を設定
            If i < UBound(zoomOptions) Then
                nextZoom = zoomOptions(i + 1)
            ' 現在の倍率がリストの最後なら、最初の倍率に戻す
            Else
                nextZoom = zoomOptions(LBound(zoomOptions))
            End If
            Exit For '次の倍率が決まったらループを抜ける
        End If
    Next i

    '== 表示倍率を変更します ==
    ActiveWindow.Zoom = nextZoom

End Sub

【使い方】

  1. VBE(Alt + F11)を開き、標準モジュールに上記のコードを貼り付けます。
  2. CycleZoomLevel マクロを実行します。
  3. 実行するたびに、シートの表示倍率が 75% → 100% → 125% → 75%… と切り替わります。

コードの解説

zoomOptions = Array(75, 100, 125)

Array関数を使って、切り替えたい倍率のリストを配列として変数 zoomOptions に格納しています。ここの数値を Array(80, 100, 120, 150) のように変更すれば、お好みの倍率リストにカスタマイズできます。

currentZoom = ActiveWindow.Zoom

ActiveWindow.Zoom プロパティで、現在のウィンドウの表示倍率(%)を取得しています。

For i = LBound(zoomOptions) To UBound(zoomOptions)

Forループを使って、配列 zoomOptions の中身を最初から最後まで一つずつチェックしています。

  • LBoundは配列の最小インデックス、UBoundは最大インデックスを取得する関数です。

If currentZoom = zoomOptions(i) Then ...

現在の倍率が、リストの中の何番目にあるかを探しています。

nextZoom = zoomOptions(i + 1)

現在の倍率がリストの中に見つかった場合、その次の要素(i + 1)を「次に設定すべき倍率」として nextZoom に格納します。もし見つかったのがリストの最後だった場合は、リストの最初の要素に戻るように設定しています。

ActiveWindow.Zoom = nextZoom

最後に、決定した nextZoom の値を、実際の表示倍率として設定しています。


まとめ

今回は、VBAを使って表示倍率を順番に切り替える「ズームサイクルマクロ」をご紹介しました。

  • ActiveWindow.Zoom プロパティで倍率の取得と設定ができる。
  • Array関数で倍率の候補リストを作ると、管理やカスタマイズがしやすい。

このマクロをクイックアクセスツールバーに登録しておけば、ワンクリックで最適な表示倍率に切り替えることができ、作業が非常にはかどります。ぜひ、あなた好みの倍率リストを作って活用してみてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次