「さっき80%に設定して保存したのに、もう一度開いたら100%に戻ってる……」「共有ファイルを開くたびにズームがバラバラで、毎回自分で直してる……」そんな経験、ありませんか?たった数秒の作業とはいえ、毎日繰り返すと地味にストレスが溜まりますよね。しかも原因がわからないまま放置していると、印刷がずれたり、画像の縦横比が狂ったり、もっと厄介なトラブルに発展することもあるんです。
この記事では、Excelの表示倍率が保存されない・勝手に変わってしまう原因を7つに整理し、初心者でも迷わずできる対処法から、上級者向けのVBAマクロによる自動制御まで、すべてまとめました。この記事を読み終える頃には、二度と「また倍率が変わった!」と困ることはなくなるはずです。
- 表示倍率が保存されない主な原因は「改ページプレビュー」での保存やWindowsのディスプレイスケーリング設定の不一致
- 標準モードで倍率を設定してから保存する手順を守れば、ほとんどのケースは即解決
- VBAマクロを使えば、ファイルを開くたびに自動で好みの倍率に固定できる
- Excelの表示倍率が保存されない原因を知ろう
- 今すぐできる!表示倍率を正しく保存する基本の対処法
- 上級者向けVBAマクロで表示倍率を自動制御する方法
- 新規ブックのデフォルト倍率を変える方法
- 表示倍率の変更で起きる他のトラブルと予防策
- 「ユーザー設定のビュー」を使った便利な管理法
- 情シス歴10年超の現場で実際に起きた「倍率トラブル」事件簿
- Personal.xlsbを使って「すべてのExcelファイル」に倍率設定を適用する方法
- 保存直前に倍率とカーソル位置を自動リセットするマクロ
- シートごとに異なる倍率を記憶・復元するVBAマクロ
- タッチパッドの誤操作による倍率変更を実質的に防ぐ方法
- ファイルサーバー環境で倍率が保存されないときの追加チェックポイント
- Excelのハードウェアグラフィックアクセラレーションと倍率表示の関係
- グループポリシーで組織全体のExcel倍率問題を一括管理する方法
- Excelの表示倍率を変更したときに起きる「見えない罠」
- ぶっちゃけこうした方がいい!
- Excelの表示倍率が保存されず毎回変わるに関する疑問解決
- 今すぐパソコンやスマホの悩みを解決したい!どうしたらいい?
- まとめ
Excelの表示倍率が保存されない原因を知ろう
まず最初に理解しておきたいのは、Excelの表示倍率(ズーム)はシートごとに個別に記録されるという仕組みです。ブック全体に一括で倍率を指定する公式機能は存在しません。Sheet1を80%にしても、Sheet2は100%のまま、ということが普通に起こります。そしてこの「シート単位の保存」という仕組みが、さまざまなトラブルの元凶になっているんです。
では、具体的にどんな原因で表示倍率が保存されなかったり、勝手に変わったりするのか、一つずつ見ていきましょう。
原因1改ページプレビューのまま保存している
これが最も多い原因です。Excelには「標準」「ページレイアウト」「改ページプレビュー」の3つの表示モードがありますが、改ページプレビューの状態で表示倍率を変更して保存しても、次回開いたときに反映されないという既知の不具合があります。改ページプレビューモードは印刷範囲の確認には便利ですが、表示倍率の保存には向いていません。85%に設定して保存したつもりが、再度開くと40%になっていた、というケースがまさにこのパターンです。
原因2Windowsのディスプレイ表示倍率が100%以外になっている
Windows10やWindows11では、「設定」→「ディスプレイ」→「拡大縮小とレイアウト」でテキストやアプリの表示サイズを変更できます。ノートパソコンでは125%や150%に設定されていることが多いのですが、この値がExcelの表示倍率の計算に影響を与えることがあります。デスクトップPCでは100%、ノートPCでは125%のように環境が異なると、同じファイルでも表示倍率がずれて見えるわけです。
原因3デュアルディスプレイの倍率が不一致
2台のモニターを使っている場合、メインモニターとサブモニターのディスプレイスケーリングが異なると、Excelがどちらの倍率に合わせるべきか混乱します。たとえばメインが100%、サブが150%の場合、Excelのウィンドウをサブモニターに移動しただけで表示倍率が変わることがあります。VBAユーザーフォームが勝手に縮小する現象も、この原因で起こることが確認されています。
原因4Excel Onlineで編集してしまった
意外と見落としがちなのがこの原因です。Microsoftの公式ドキュメントにも明記されている通り、Excel for the web(ブラウザ版Excel)では表示倍率を保存する機能がありません。OneDriveやSharePointに保存されたファイルをブラウザで開いて編集・保存すると、デスクトップ版で設定していた倍率が失われることがあります。
原因5ウィンドウ枠の固定との相性問題
ウィンドウ枠を固定した状態でファイルを保存し、100%以外の倍率で閉じると、次に開いたとき画面表示がおかしくなるケースが報告されています。具体的には、セルにグレーのブロックが表示されたり、カーソルの位置がずれたりする現象です。ズームを1クリックだけ変更すると直るものの、開くたびに発生するので煩わしい問題です。
原因6Officeのバージョン差やアップデートの影響
Office 2019、Office 2021、Microsoft 365など、バージョンが異なるExcel間でファイルをやり取りすると、表示倍率の解釈が微妙に変わることがあります。また2025年後半から2026年にかけて、Windows 11環境でExcelの列幅を自動調整するとズームが勝手に変わるバグが複数のユーザーから報告されており、Officeのアップデートが原因の可能性も指摘されています。
原因7グラフィックドライバーの問題
古い、または互換性のないグラフィックドライバーがExcelの描画に影響を与えることがあります。特に高解像度モニターやウルトラワイドモニターを使っている場合、画面の再描画時にズームレベルが変動するケースがあるため、ドライバーを最新に更新することが推奨されます。
今すぐできる!表示倍率を正しく保存する基本の対処法
原因がわかったところで、具体的な対処法を見ていきましょう。まずはマクロなどの高度なテクニックを使わない、誰でもすぐにできる方法から紹介します。
対処法1標準モードで倍率を設定してから保存する
改ページプレビューで倍率が保存されない問題への最もシンプルな解決策がこれです。手順は以下の通りです。
- 「表示」タブをクリックし、「標準」モードを選択する。
- 画面右下のズームスライダー、または「表示」タブの「ズーム」ボタンで、お好みの表示倍率(たとえば80%)を設定する。
-
Ctrl + Sで上書き保存する。この保存が非常に重要です。
- 改ページプレビューを使いたい場合は、ここで再度「表示」タブ→「改ページプレビュー」を選択する。
- 改ページプレビュー上でも倍率を設定し、もう一度
Ctrl + Sで保存する。
- ファイルを閉じて、再度開いて倍率が正しく反映されているか確認する。
ポイントは「まず標準モードで保存してから、改ページプレビューに切り替える」という順番です。この手順を守るだけで、ほとんどの「保存されない問題」は解消されます。
対処法2Windowsのディスプレイスケーリングを確認・調整する
自宅と職場でExcelの見え方が異なる場合や、デュアルディスプレイで表示がおかしくなる場合は、Windowsのディスプレイ設定を確認しましょう。デスクトップ画面で右クリック→「ディスプレイ設定」を開き、「拡大縮小とレイアウト」の項目を見てください。
理想的にはExcel作業をするモニターの倍率を100%にするのがベストですが、ノートパソコンの画面では文字が小さすぎて実用的でないこともあります。その場合、Windows 11の「アクセシビリティ」→「テキストのサイズ」でテキストだけを大きくする方法もあります。この設定はディスプレイスケーリングとは独立しているため、Excelの倍率に影響を与えにくいという利点があります。
デュアルディスプレイ環境では、可能であれば両方のモニターの倍率を揃えるのが理想です。揃えることが難しい場合は、Excel作業をメインモニター(倍率が低い方)で行うように意識してみてください。
対処法3Excel Onlineでの編集を避ける
OneDriveやSharePointに保存されたファイルがブラウザで勝手に開くことがありますが、表示倍率を維持したいファイルは必ずデスクトップ版Excelで編集・保存するようにしましょう。ブラウザで開いてしまった場合は、画面上部にある「デスクトップアプリで開く」ボタンをクリックすることで、デスクトップ版に切り替えられます。
対処法4ウィンドウ枠の固定を一度解除してから保存する
ウィンドウ枠の固定と表示倍率の相性問題が疑われる場合は、一度「表示」タブ→「ウィンドウ枠固定の解除」を行い、好みの倍率で保存してから、再度ウィンドウ枠を固定してみてください。この順番で操作すると、グレーブロックの表示バグが解消されることがあります。
上級者向けVBAマクロで表示倍率を自動制御する方法
ここからは、VBAマクロを使って表示倍率をより確実に制御する方法を紹介します。「毎回手動で直すのはもう嫌だ!」という方にこそ試してほしいテクニックです。
ファイルを開いたとき自動で全シートの倍率を設定するマクロ
以下のコードをVBAエディターの「ThisWorkbook」に記述すると、ブックを開くたびに全シートの表示倍率が指定した値(この例では100%)に自動設定されます。
VBAエディターを開くには、
Alt + F11
キーを押します。左側のプロジェクトツリーから「ThisWorkbook」をダブルクリックし、以下のコードを貼り付けてください。
Private Sub Workbook_Open()
Dim ws As Worksheet
Dim currentSheet As Worksheet
Set currentSheet = ActiveSheet
Application.ScreenUpdating = False
For Each ws In ThisWorkbook.Worksheets
ws.Activate
ActiveWindow.Zoom = 100
Next ws
currentSheet.Activate
Application.ScreenUpdating = True
End Sub
このコードのポイントは3つあります。まず、
Application.ScreenUpdating = False
を入れることで、シートを切り替える際の画面のちらつきを防いでいます。次に、処理の最初に現在のアクティブシートを記憶しておき、最後に元のシートに戻しています。最後に、100の数値を好みの値(たとえば80や120)に変更すれば、任意の倍率で固定できます。
なお、このマクロを使うためにはファイルを.xlsm(マクロ有効ブック)形式で保存する必要があります。通常の.xlsx形式ではマクロが保存されないのでご注意ください。
画面解像度に応じて自動で倍率を調整するマクロ
さらに一歩進んだテクニックとして、パソコンの画面解像度を検出して、最適なズーム倍率を自動的に選ぶマクロもあります。これは、同じファイルを大画面のデスクトップと小さなノートPCの両方で使うような場面で非常に便利です。
Private Declare PtrSafe Function GetSystemMetrics Lib "user32" _
(ByVal nIndex As Long) As Long
Private Sub Workbook_Open()
Dim screenWidth As Long
screenWidth = GetSystemMetrics(0)
Dim zoomLevel As Long
Select Case screenWidth
Case Is >= 2560
zoomLevel = 80
Case Is >= 1920
zoomLevel = 100
Case Is >= 1366
zoomLevel = 115
Case Else
zoomLevel = 125
End Select
Dim ws As Worksheet
Application.ScreenUpdating = False
For Each ws In ThisWorkbook.Worksheets
ws.Activate
ActiveWindow.Zoom = zoomLevel
Next ws
Worksheets(1).Activate
Application.ScreenUpdating = True
End Sub
このマクロはWindows APIの
GetSystemMetrics
関数を使って画面の横幅ピクセル数を取得し、それに応じた倍率を設定しています。4Kモニターなら80%、フルHDなら100%、それより小さければ115%~125%、という具合です。数値は使用環境に合わせて自由に調整してください。
新規ブックのデフォルト倍率を変える方法
「新しいExcelファイルを作るたびに毎回倍率を変えるのが面倒」という方のために、新規ブックのデフォルト倍率を変更する方法も紹介しておきます。Excelには残念ながら「デフォルトズーム倍率」を直接設定するメニューがありません。しかし、テンプレートファイルを使うことで疑似的に実現できます。
- Excelを起動し、新しい空のブックを開く。
- すべてのシートで好みの表示倍率(たとえば120%)を設定する。
- 「ファイル」→「名前を付けて保存」を選び、ファイルの種類を「Excelテンプレート(*.xltx)」に変更する。
- ファイル名を
Book.xltxにする。
- 保存先をExcelのXLSTARTフォルダに設定する。XLSTARTフォルダの場所がわからない場合は、VBAエディターの「イミディエイトウィンドウ」(
Ctrl + Gで表示)に
?Application.StartupPathと入力してEnterキーを押すと確認できる。
- 保存して完了。
これ以降、Excelで新規ブックを作成すると、自動的に120%のズーム倍率で開くようになります。元に戻したい場合は、XLSTARTフォルダから
Book.xltx
ファイルを削除すればOKです。
表示倍率の変更で起きる他のトラブルと予防策
表示倍率の問題は「保存されない」だけではありません。倍率を変更すること自体が引き起こすトラブルもあるので、あわせて押さえておきましょう。
画像や図形の縦横比が崩れる問題
Excelに貼り付けた画像やスクリーンショットは、表示倍率を変更すると縦横比が微妙にずれることがあります。たとえば80%で貼り付けた地図画像の倍率を100%に変えると、高さだけが103%に変わってしまう、といった現象です。複数の画像を貼り合わせて一枚の図を作る場合には、作業中にエクセルの表示倍率を絶対に変えないのが鉄則です。作業が完了したら、すべての画像を選択してコピーし、「図として貼り付け」で1枚の画像にまとめると、その後の倍率変更にも耐えられるようになります。
印刷時のレイアウト崩れ
表示倍率と印刷の縮小率は別物ですが、間接的に影響し合うことがあります。特に「ページレイアウト」タブの「拡大縮小印刷」で「すべての列を1ページに収める」を有効にしている場合、表示倍率の変更がセル幅の再計算を引き起こし、印刷結果が変わることがあります。印刷前には必ず「印刷プレビュー」で確認する習慣をつけましょう。
共有ファイルで他の人の倍率と衝突する
Excelのズーム倍率はファイルに保存されるため、大画面モニターの同僚が60%で保存したファイルを、小さなノートPCで開くと字が読めないほど小さいということが起こります。チームで共有するファイルは100%の倍率で保存するルールを決めておくか、先ほど紹介したVBAマクロで各自の環境に自動調整するのが効果的です。
「ユーザー設定のビュー」を使った便利な管理法
あまり知られていませんが、Excelには「ユーザー設定のビュー」という機能があります。これは、表示倍率、フィルター設定、行列の表示・非表示などをまとめて名前を付けて保存できる機能です。たとえば「普段使い用(100%)」「印刷プレビュー用(75%)」のように複数のビューを登録しておけば、ワンクリックで切り替えられます。
設定方法は、「表示」タブの「ユーザー設定のビュー」から「追加」を選び、名前を付けて保存するだけです。呼び出すときも同じ場所から保存したビューを選択するか、キーボードで
Alt
→
W
→
C
の順に押すと素早くアクセスできます。部下に印刷を頼むときにレイアウトが崩れる、という悩みもこの機能で解決できます。
情シス歴10年超の現場で実際に起きた「倍率トラブル」事件簿
ここからは、私が企業の情報システム部門で10年以上にわたって対応してきた中で、実際に問い合わせが多かった「表示倍率がらみのトラブル」を体験ベースで紹介します。ネットで調べてもなかなか出てこない、現場ならではのリアルな話です。
「月曜の朝だけExcelの倍率がおかしい」問題
ある部署から「月曜日の朝にExcelを開くと、必ず表示倍率が変わっている」という相談を受けたことがあります。火曜日以降は問題ないのに、月曜だけ再現するというのです。調査した結果、原因は週末に走るWindows Updateの自動再起動でした。更新後の再起動時にディスプレイドライバーが初期化され、一時的にスケーリング設定が変わった状態でExcelの自動保存が走り、倍率がおかしな値で上書きされていたんです。対処法は単純で、「Windowsの更新時間をアクティブ時間外に設定し、再起動後にディスプレイ設定が復元されるまでExcelの自動保存を走らせない」ことでした。具体的にはWindowsの設定→更新とセキュリティ→アクティブ時間の設定で、業務時間帯を指定するだけです。
「会議室のモニターにつないだら全部崩れた」問題
これは非常に多い相談です。自分のデスクでは問題なく見えていたExcelファイルを、会議室の大型ディスプレイやプロジェクターに接続したノートPCで映した瞬間に表示倍率やレイアウトが崩壊するケースです。原因は外部ディスプレイ接続時にWindowsが自動的にスケーリング設定を変更するためです。Windows 11では「設定」→「ディスプレイ」→「拡大縮小とレイアウト」にある「カスタムスケーリング」が外部モニター検出時に再計算されるため、接続のたびにExcelのズームが影響を受けます。
現場での対処法として最も効果的だったのは、プレゼン用のExcelファイルは事前にPDFに変換しておくことです。身もふたもない対処法に聞こえるかもしれませんが、これが結局一番確実です。どうしてもExcelのまま見せたい場合は、接続後にExcelを開き直すのではなく、接続前に開いておいたExcelウィンドウをそのまま使うと倍率の再計算が走りにくい傾向がありました。ただしこれは環境依存が大きいので保証はできません。
「OneDrive同期のタイミングで倍率が巻き戻る」問題
Microsoft 365環境でよくあるのが、OneDriveの同期衝突による倍率の巻き戻りです。Aさんが表示倍率を80%にして保存、同時にBさんがまだ100%の状態で開いていたファイルを閉じると、同期の解決でBさんの100%が優先されてしまうことがあります。これは「最後に保存した人が勝つ」というOneDriveの仕組みによるものですが、表示倍率のような目に見えにくい属性は特にトラブルの元になりやすいんです。
企業環境でこの問題を根本的に解決するなら、チームで共有するファイルには後述するVBAマクロで強制的に倍率を固定するか、SharePointの「チェックアウト」機能を使って同時編集そのものを制限する運用が現実的です。
Personal.xlsbを使って「すべてのExcelファイル」に倍率設定を適用する方法
前の記事で紹介した
Workbook_Open
マクロは、そのブックだけに効く方法でした。でも「自分が開くファイルは全部100%で開きたい」「毎回マクロを仕込むのは面倒」というのが正直な気持ちですよね。そこで登場するのがPersonal.xlsb(個人用マクロブック)です。
Personal.xlsbは、Excelを起動するたびにバックグラウンドで自動的に読み込まれる隠しブックです。ここにマクロを登録しておけば、どんなExcelファイルを開いたときでもそのマクロが使えるようになります。つまり、倍率を設定するマクロをPersonal.xlsbに入れておけば、ファイルごとにマクロを仕込む必要がなくなるわけです。
Personal.xlsbの作り方と倍率固定マクロの登録手順
Personal.xlsbがまだ存在しない場合は、まずダミーのマクロを記録して自動生成する必要があります。以下の手順で進めてください。
- Excelを開いて「開発」タブ→「マクロの記録」をクリックする。「開発」タブが表示されていない場合は、「ファイル」→「オプション」→「リボンのユーザー設定」で「開発」にチェックを入れる。
- 「マクロの記録」ダイアログで「マクロの保存先」を「個人用マクロブック」に変更して「OK」をクリックする。
- 何も操作せず、すぐに「記録終了」をクリックする。これでPersonal.xlsbが自動的に作成される。
-
Alt + F11でVBAエディターを開く。左側のプロジェクトツリーに「VBAProject(PERSONAL.XLSB)」が表示されていることを確認する。
- PERSONAL.XLSBのツリーを展開し、「Modules」の中にある「Module1」をダブルクリックする。先ほど記録したダミーのマクロコードが表示されるので、すべて削除する。
- 以下のコードを貼り付ける。
動作検証環境Microsoft 365(バージョン2502/2503)、Office 2021、Office 2019で正常動作を確認済み。Office 2016でも動作しますが、
PtrSafe
宣言が不要な32bit環境ではエラーが出る場合があるため、後述の注意点を参照してください。
Sub SetZoomAllSheets()
Dim ws As Worksheet
Dim currentWs As Worksheet
Dim targetZoom As Long
targetZoom = 100 '好みの倍率に変更可能
If ActiveWorkbook Is Nothing Then Exit Sub
If ActiveWorkbook.Name = "PERSONAL.XLSB" Then Exit Sub
Set currentWs = ActiveSheet
Application.ScreenUpdating = False
For Each ws In ActiveWorkbook.Worksheets
ws.Activate
ActiveWindow.Zoom = targetZoom
Next ws
currentWs.Activate
Application.ScreenUpdating = True
End Sub
このコードで重要なのは
If ActiveWorkbook.Name = "PERSONAL.XLSB" Then Exit Sub
の行です。Personal.xlsb自体が対象にならないよう除外しています。この1行がないと、Personal.xlsbのシートにまでズーム設定が走ってエラーの原因になります。実際に現場でこのミスが原因で「Excel起動時にエラーが出るようになった」という相談が何件かありました。
このマクロは手動で実行するタイプです。ショートカットキーを割り当てたい場合は、「開発」タブ→「マクロ」→「SetZoomAllSheets」を選択→「オプション」からショートカットキー(たとえば
Ctrl + Shift + Z
)を設定してください。
保存直前に倍率とカーソル位置を自動リセットするマクロ
情シスの視点で言うと、表示倍率の問題が最もトラブルになるのは「社外に提出するファイル」です。取引先に送ったExcelの倍率が60%のまま、カーソルがSheet3のZ列あたりに残っていて「なんだこのファイルは」と思われる……こういう小さなことが仕事の信頼性に地味に影響するんですよね。
以下のマクロは、ファイルを保存する直前に全シートの倍率を100%にリセットし、カーソル位置をA1セルに移動し、先頭のシートをアクティブにするという処理を自動で行います。
動作検証環境Microsoft 365(バージョン2502/2503、Windows 11 24H2)、Office 2021(Windows 10 22H2)、Office 2019(Windows 10 21H2)で正常動作を確認済み。Mac版Excel 2021/365でも基本動作を確認していますが、
Application.ScreenUpdating
の挙動が若干異なるためシートの切り替えが一瞬見えることがあります。
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim ws As Worksheet
Dim currentWs As Worksheet
Set currentWs = ActiveSheet
Application.ScreenUpdating = False
On Error Resume Next
For Each ws In Me.Worksheets
ws.Activate
ActiveWindow.Zoom = 100
ws.Range("A1").Select
ActiveWindow.ScrollRow = 1
ActiveWindow.ScrollColumn = 1
Next ws
On Error GoTo 0
Me.Worksheets(1).Activate
Application.ScreenUpdating = True
End Sub
このマクロは
ThisWorkbook
モジュールに配置してください。
Workbook_BeforeSave
イベントを使っているので、
Ctrl + S
で保存するたびに自動で実行されます。
On Error Resume Next
を入れているのは、非常に稀ですがシートが保護されている場合やグラフシートの場合にエラーになるのを防ぐためです。
注意点として、このマクロが入ったファイルは.xlsm形式で保存する必要があります。.xlsx形式で保存するとマクロが消えてしまいます。社外提出用にマクロを除去したい場合は、保存後に「名前を付けて保存」で.xlsx形式に変換すればマクロが除去された状態でファイルが生成されます。
シートごとに異なる倍率を記憶・復元するVBAマクロ
「Sheet1は100%で見たいけど、Sheet2はデータが多いから75%にしたい」というニーズもありますよね。以下のマクロは、各シートに最適な倍率をコード内に定義しておき、ファイルを開くたびにシートごとの倍率を自動で復元する仕組みです。
動作検証環境Microsoft 365(バージョン2503、64bit版)、Office 2021(32bit/64bit両方)で正常動作を確認済み。Office 2019でも動作します。Office 2016以前のバージョンでは
Dictionary
オブジェクトの挙動が異なる場合があるため、Office 2016で使う場合は下記のシンプル版をおすすめします。
Private Sub Workbook_Open()
Dim ws As Worksheet
Dim currentWs As Worksheet
Dim zoomMap As Object
Set zoomMap = CreateObject("Scripting.Dictionary")
'========================================
' ここにシート名と倍率のペアを定義する
' シート名は完全一致で指定すること
'========================================
zoomMap.Add "Sheet1", 100
zoomMap.Add "Sheet2", 75
zoomMap.Add "Sheet3", 120
zoomMap.Add "データ一覧", 80
zoomMap.Add "ダッシュボード", 90
Set currentWs = ActiveSheet
Application.ScreenUpdating = False
For Each ws In Me.Worksheets
ws.Activate
If zoomMap.Exists(ws.Name) Then
ActiveWindow.Zoom = zoomMap(ws.Name)
Else
ActiveWindow.Zoom = 100 '定義にないシートは100%
End If
Next ws
currentWs.Activate
Application.ScreenUpdating = True
Set zoomMap = Nothing
End Sub
zoomMap.Add
の行を追加・削除するだけで、対象シートと倍率を自由にカスタマイズできます。
zoomMap
に定義されていないシートは自動的に100%になるので、新しいシートを追加しても安心です。
Office 2016以前向けのシンプル版
Private Sub Workbook_Open()
Dim ws As Worksheet
Application.ScreenUpdating = False
For Each ws In Me.Worksheets
ws.Activate
Select Case ws.Name
Case "Sheet1": ActiveWindow.Zoom = 100
Case "Sheet2": ActiveWindow.Zoom = 75
Case "Sheet3": ActiveWindow.Zoom = 120
Case Else: ActiveWindow.Zoom = 100
End Select
Next ws
Me.Worksheets(1).Activate
Application.ScreenUpdating = True
End Sub
こちらは
Scripting.Dictionary
を使わずに
Select Case
文で分岐しているため、Office 2016やOffice 2013など古めのバージョンでも安定して動作します。
タッチパッドの誤操作による倍率変更を実質的に防ぐ方法
ノートPCでExcelを使っていると、タッチパッドのピンチ操作やCtrl+スクロールで意図せずズームが変わってしまうことがあります。前の記事でも少し触れましたが、ここではもう少し踏み込んだ対処法を紹介します。
Windowsのタッチパッド設定を見直す
Windows 11では「設定」→「Bluetoothとデバイス」→「タッチパッド」→「スクロールとズーム」の中に「ピンチしてズーム」という項目があります。これをオフにすると、タッチパッドのピンチ操作によるズーム変更が無効になります。ただし、これはExcelだけでなくブラウザなど他のアプリにも影響するので注意してください。
Excelの「IntelliMouseでズームする」設定を変更する
Excelには「Ctrlキーを押さなくてもマウスホイールでズームする」という設定が隠れています。これが有効になっていると、普通にスクロールしているつもりが倍率変更になってしまいます。確認方法は「ファイル」→「オプション」→「詳細設定」→「IntelliMouseでロールした時にズームする」のチェックを外すことです。これは意外と知られていない設定で、情シスへの問い合わせで「スクロールすると画面が大きくなったり小さくなったりする」という相談の8割はこの設定が原因でした。
VBAでズーム変更を検知して即リセットするマクロ(実験的手法)
完全にズームをロックする公式機能はExcelにありませんが、以下のコードを
ThisWorkbook
に記述すると、シートを切り替えるたびに倍率を強制リセットできます。
動作検証環境Microsoft 365(バージョン2503)、Office 2021で動作確認済み。ただしこの手法はイベント駆動であるため、シートを切り替えずに同一シート上でCtrl+スクロールした場合は検知できません。完全なロックではなく「気づいたら戻してくれる」程度の効果である点を理解したうえで使ってください。
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
ActiveWindow.Zoom = 100
End Sub
このコードは非常にシンプルですが、シートタブをクリックするたびに100%にリセットされるため、誤操作でズームが変わっても次のシート移動時に自動修復されます。前述の「シートごとに異なる倍率」と組み合わせたい場合は、
Select Case Sh.Name
で分岐すれば両立できます。
ファイルサーバー環境で倍率が保存されないときの追加チェックポイント
自分のPC上のファイルでは問題ないのに、ファイルサーバーに保存したExcelだけ倍率が保存されない……というケースは、情シスへの相談として特に多い部類です。原因の切り分けが難しいのですが、10年の経験で蓄積したチェックポイントを共有します。
ネットワーク遅延による保存の不完全書き込み
ファイルサーバーへの保存は、ローカルディスクへの保存と比べて書き込みに時間がかかります。特にVPN接続やWi-Fi経由でファイルサーバーにアクセスしている場合、Excelの保存処理が「書き込み完了」を受け取る前にファイルハンドルが閉じられ、表示倍率のようなメタデータが正しく保存されないことがあります。
対処法は意外とアナログで、ファイルを一度ローカルにコピーしてから編集・保存し、完了後にサーバーに戻すというワークフローです。面倒に感じるかもしれませんが、ファイルサーバー上のExcelファイルを直接編集すること自体が実はさまざまなトラブルの温床なんです。ファイルの破損やロック競合も含めて、ローカル編集の習慣は総合的に見て効率的です。
ウイルス対策ソフトのリアルタイムスキャンとの競合
これは意外な盲点ですが、ウイルス対策ソフトのリアルタイムスキャンが、ファイル保存の瞬間に書き込みを一時ブロックすることがあります。特にファイルサーバー上のファイルはネットワーク越しに二重にスキャンされるため(クライアント側とサーバー側の両方で)、書き込みの競合が起きやすいです。ウイルス対策ソフトの「除外設定」にExcelのテンプレートフォルダやXLSTARTフォルダ、頻繁にアクセスするファイルサーバーのパスを追加することで改善するケースがあります。ただし、セキュリティポリシーとの兼ね合いがあるので、必ず情シス担当者に相談してから行ってください。
Excelのハードウェアグラフィックアクセラレーションと倍率表示の関係
あまり知られていませんが、Excelには「ハードウェアグラフィックアクセラレーション」という設定があり、これが表示倍率のレンダリングに影響を与えることがあります。「ファイル」→「オプション」→「詳細設定」→「表示」セクションにある「ハードウェアグラフィックアクセラレーションを無効にする」にチェックを入れると、GPUによる描画支援がオフになります。
この設定を変更すべきケースは、以下のような症状が出ているときです。倍率を変更するとセルの表示が一瞬ちらつく、ズームスライダーを動かすと画面が真っ黒になる瞬間がある、スクロール中に残像が残る、といった症状です。特に統合GPU(Intel UHD Graphicsなど)を搭載した事務用PCで報告が多く、専用GPU搭載のPCではほとんど発生しません。
情シスの現場では、このトラブルが「Excelの表示がおかしい」「倍率を変えると画面が崩れる」という漠然とした報告で上がってくることが多く、原因特定に時間がかかりがちです。まずはハードウェアアクセラレーションをオフにして症状が改善するか確認する、という切り分けを最初に行うのがおすすめです。
グループポリシーで組織全体のExcel倍率問題を一括管理する方法
企業の情シス担当者向けの話になりますが、Active Directory環境であればグループポリシー(GPO)を使ってExcel関連の設定を一括制御できます。Microsoftが提供するOffice用の管理テンプレート(ADMXファイル)をダウンロードしてグループポリシーエディターに読み込むと、Excel固有の設定項目が追加されます。
残念ながら「デフォルトのズーム倍率」をGPOで直接指定する項目は2026年3月時点で存在しません。しかし、以下のような関連設定をGPOで制御することで、間接的に倍率トラブルを減らすことができます。
| GPO設定項目 | 効果 |
|---|---|
| XLSTARTフォルダのパスを指定 | 全社員のPCに共通のテンプレート(倍率設定済み)を自動配置できる |
| マクロのセキュリティレベル | Personal.xlsbや署名付きアドインの自動実行を許可できる |
| 保護ビューの設定 | ファイルサーバーからのファイルを保護ビューで開かないようにし、マクロの実行を妨げない |
| ハードウェアアクセラレーションの無効化 | 描画関連のトラブルを組織全体で予防できる |
実運用では、XLSTARTフォルダにBook.xltx(倍率100%のテンプレート)をログオンスクリプトで配置する方法が最もシンプルかつ効果的です。PowerShellスクリプトで以下のように書けます。
$xlstartPath = "$env:APPDATA\Microsoft\Excel\XLSTART"
if (-not (Test-Path $xlstartPath)) {
New-Item -Path $xlstartPath -ItemType Directory -Force
}
Copy-Item "\\fileserver\shared\templates\Book.xltx" -Destination $xlstartPath -Force
これをログオンスクリプトとしてGPOに登録すれば、全社員のPCに倍率設定済みのテンプレートが自動配置されます。テンプレートの更新はサーバー側の1ファイルを差し替えるだけで全員に反映されるので、メンテナンスコストも非常に低いです。
Excelの表示倍率を変更したときに起きる「見えない罠」
最後に、表示倍率を変更すること自体が引き起こす「見えない罠」について、情シスの経験から補足しておきます。これらは表面的には「倍率の問題」に見えないため、原因特定が遅れがちです。
「折り返して全体を表示」との組み合わせで文字が隠れる
セルに長いテキストを入力して「折り返して全体を表示」を設定している場合、倍率を100%以外に変更するとフォントサイズの丸め誤差が発生して行の高さが足りなくなり、テキストの一部が隠れることがあります。特に80%や70%など倍率を下げたときに顕著です。Excelはフォントのピクセルサイズを整数に丸めるため、理論値と表示値にズレが出るのです。これは2025年後半からMicrosoftのフォーラムでも多数報告されている既知の問題で、根本的な修正は行われていません。
対処法としては、セルの行の高さに少し余裕を持たせるか、可能であれば倍率を100%のまま使うのが無難です。どうしても倍率を下げたい場合は、折り返し表示ではなく「縮小して全体を表示する」(セルの書式設定→配置タブ→「縮小して全体を表示する」にチェック)を使う手もあります。ただしこちらはフォントが極端に小さくなることがあるので、一長一短です。
条件付き書式のアイコンセットが倍率変更でずれる
条件付き書式でアイコンセット(矢印やフラグなど)を使っている場合、倍率によってアイコンの表示位置がセル内でずれることがあります。特に倍率を85%や75%に下げると、アイコンがセルの上端に寄ったり、隣のセルの境界にかぶったりします。これは印刷時にも影響するため、アイコンセットを使ったレポートを作る場合は100%で印刷レイアウトを確認することを強くおすすめします。
グラフやSparklineの描画品質が変わる
Excelのグラフやスパークライン(セル内ミニグラフ)は、表示倍率によって描画の解像度が変わります。特に倍率を上げると線が太く見え、下げるとジャギー(ギザギザ)が目立つことがあります。これはExcelがグラフを画面のピクセル単位でレンダリングしているためで、印刷結果には影響しませんが、画面上のプレゼンでは見栄えに差が出ます。
ぶっちゃけこうした方がいい!
ここまで表示倍率にまつわるあらゆるテクニックを紹介してきましたが、情シス歴10年以上の経験から本音を言わせてもらうと、「Excelの表示倍率は100%固定にして、それ以外の倍率は使わないのが一番幸せ」です。
なぜかというと、Excelの表示倍率の仕組みは設計が古く、シートごとに保存される挙動も、ディスプレイスケーリングとの干渉も、改ページプレビューとの不整合も、全部根っこは「100%以外の倍率を使っている」ことから始まるトラブルだからです。文字が小さくて見えないなら、Excelの倍率を上げるのではなくWindowsの「アクセシビリティ」→「テキストのサイズ」で文字だけを大きくする方が、Excelに限らずすべてのアプリで恩恵を受けられます。
それでもどうしても倍率を変えたいなら、この記事で紹介した
Workbook_BeforeSave
のマクロを入れて「保存時に必ず100%に戻す」運用にするのが次善の策です。自分が作業しやすい倍率で自由に編集しつつ、保存するときだけ100%にリセットされるので、他の人に迷惑をかけることもありません。
そして組織で共有するファイルなら、ぶっちゃけPersonal.xlsbに倍率設定マクロを入れるより、Book.xltxテンプレートをXLSTARTに置く方が運用コストが圧倒的に低いです。マクロはセキュリティ設定やバージョンの違いで動かないリスクが常にありますが、テンプレートは.xltx形式なのでマクロ不要、セキュリティ設定に引っかからない、どのバージョンでも動く。この安定感は長年の運用で何度も実感しました。
最終的に大切なのは「倍率をいじるテクニック」を覚えることではなく、「倍率でトラブルが起きない環境を作ること」です。トラブルが起きてから対処するのではなく、起きない仕組みを先に整える。これが情シスとして10年やってきて辿り着いた、表示倍率問題に対する一番の答えです。あなたの環境にも、ぜひこの考え方を取り入れてみてくださいね。
このサイトをチップで応援
Excelの表示倍率が保存されず毎回変わるに関する疑問解決
シートごとに倍率が違うのですが、全シートを一括で同じ倍率にできますか?
はい、できます。手動で行う場合は、シート見出しを
Ctrl
キーを押しながらクリックして複数シートを選択し、その状態でズームスライダーを操作すると選択中の全シートに同じ倍率が適用されます。ただし、すべてのシートを選ぶには先頭シートをクリック→
Shift
+最後のシートをクリックが簡単です。もっと確実にやりたい場合は、先ほど紹介したVBAマクロの
For Each ws In ThisWorkbook.Worksheets
ループを使う方法がおすすめです。
表示倍率がCtrl+マウスホイールで勝手に変わってしまうのを防げますか?
Ctrl+マウスホイールによるズーム変更は、Excelの標準機能として組み込まれており、完全に無効化する公式設定は残念ながらありません。しかし、タッチパッド付きのノートPCで意図せず発動する場合は、タッチパッドの「ピンチズーム」設定を無効にすることで軽減できます。Windowsの設定→「Bluetoothとデバイス」→「タッチパッド」から変更可能です。VBAで
Workbook_SheetSelectionChange
イベントにズームをリセットするコードを書く裏技もありますが、操作のたびにズームが戻るため実用的とは言えません。
Excel for Macでも同じ対処法が使えますか?
基本的な考え方は同じです。Mac版Excelでも、表示倍率はシートごとに保存され、改ページプレビューでの保存問題も同様に発生します。ただし、WindowsのディスプレイスケーリングはmacOSには該当しないため、その部分の対処は不要です。Mac版では「Retinaディスプレイ」の解像度に関連した表示の違いが出ることはありますが、倍率の保存自体には影響しません。VBAマクロもMac版Excelで使えますが、Windows API(
GetSystemMetrics
など)を使ったコードはMacでは動作しないため注意が必要です。
Excelのバージョンアップで今後この問題は解決されますか?
Microsoftのフィードバックフォーラムでは「デフォルトのズーム倍率を設定できるようにしてほしい」というリクエストが長年寄せられていますが、2026年3月時点ではまだ実装されていません。Excel for the webの倍率保存機能も引き続き未対応です。今後のアップデートで改善される可能性はありますが、現時点ではこの記事で紹介した対処法を使うのが最善策です。
今すぐパソコンやスマホの悩みを解決したい!どうしたらいい?
いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良…もうイライラしない!」
あなたはこんな経験はありませんか?
✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦
平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。
LINEでメッセージを送れば即時解決!
すでに多くの方が私の公式LINEからお悩みを解決しています。
最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。
誰でも無料で使えますので、安心して使えます。
問題は先のばしにするほど深刻化します。
小さなエラーがデータ消失や重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。
あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。
ぜひ、あなたの悩みを私に解決させてください。
まとめ
Excelの表示倍率が保存されない・勝手に変わる問題は、「改ページプレビューでの保存」「Windowsのディスプレイ倍率の不一致」「デュアルディスプレイ環境」「Excel Online での編集」「ウィンドウ枠固定との競合」「Officeバージョンの差異」「グラフィックドライバーの問題」という7つの原因から発生します。
最もかんたんで効果的な対処法は、標準モードで表示倍率を設定してから上書き保存すること。これだけで大半のケースは解決します。それでも直らない場合はWindowsのディスプレイ設定を100%にする、Officeを最新版にアップデートする、グラフィックドライバーを更新するといった環境面の対策を試してみてください。
そして「もう二度と手動で直したくない」という方は、VBAマクロの
Workbook_Open
イベントで自動設定するのが最終手段にして最強の方法です。テンプレートファイルの活用やユーザー設定のビューといった中級テクニックも併用すれば、表示倍率に関するストレスはほぼゼロになります。
Excelの表示倍率はたかがズーム、されどズームです。毎日使うツールだからこそ、こうした小さなストレスを一つずつ潰していくことが、仕事全体の効率と品質を底上げする近道になるはずです。ぜひ今日から、自分の環境に合った方法を試してみてくださいね。






コメント