「あれ、ウィンドウ枠の固定が解除できない……」「グレーアウトして押せないんだけど、なんで?」そんな経験、ありませんか?Excelで大きな表を扱っていると、見出しの行や列を固定するウィンドウ枠の固定はとても便利な機能です。でも、いざ解除しようとしたときに操作を受け付けてくれないと、かなり焦りますよね。
実はこの問題、原因はひとつではありません。ブックの保護がかかっていたり、ページレイアウト表示になっていたり、分割モードと混同していたり、思わぬ落とし穴がいくつもあるんです。この記事では、ウィンドウ枠の固定を解除できない原因を7つに分類して、それぞれの具体的な対処法をわかりやすく解説します。初心者の方はもちろん、「自分はExcel得意だよ」という方にも新しい発見があるはずです。
- ウィンドウ枠の固定が解除できなくなる7つの原因と、それぞれの具体的な解決手順
- ショートカットキーやVBAを使った効率的な固定・解除テクニック
- トラブルを未然に防ぐための設定チェックリストと実務で役立つ応用ワザ
- そもそもウィンドウ枠の固定とは何か?基本のおさらい
- ウィンドウ枠の固定を正しく解除する基本手順
- 原因1ブックの保護がかかっている
- 原因2ページレイアウト表示になっている
- 原因3画面が「分割」モードになっている
- 原因4既存の固定を解除せずに新しい固定をしようとしている
- 原因5ブックの共有モードが有効になっている
- 原因6Excelのバグや一時的なエラー
- 原因7アドインやマクロが干渉している
- トラブルを防ぐために知っておきたい実務テクニック
- 上級者向けVBAでウィンドウ枠の固定を自動化する方法
- 情シス歴10年超の現場で遭遇した「本当に厄介な」ウィンドウ枠トラブル集
- 現場で実際に使っている実戦VBAコード集
- 「開いて修復」機能で壊れたウィンドウ枠設定を直す方法
- xlsxファイルを手動でZIP展開してウィンドウ枠設定を修復する上級テクニック
- プリンタドライバがウィンドウ枠トラブルを引き起こす盲点
- 「テーブル機能」をウィンドウ枠の固定の代替として使うという発想
- ウィンドウ枠トラブルの発生を防ぐ運用ルールチェックリスト
- ぶっちゃけこうした方がいい!
- Excelのウィンドウ枠固定が解除できないに関する疑問解決
- 今すぐパソコンやスマホの悩みを解決したい!どうしたらいい?
- まとめ
そもそもウィンドウ枠の固定とは何か?基本のおさらい
まずは基本をしっかり押さえておきましょう。ウィンドウ枠の固定とは、Excelで画面をスクロールしても特定の行や列が常に表示されたままになる機能です。たとえば、表の1行目に「氏名」「部署」「売上」などの見出しがあるとき、この行を固定しておけば、何百行下にスクロールしても見出しが消えません。
この機能は「表示」タブの「ウィンドウ枠の固定」から設定できます。メニューには3つの選択肢があり、それぞれ役割が異なります。
| メニュー名 | 固定される範囲 | 使いどころ |
|---|---|---|
| 先頭行の固定 | 1行目のみ | 見出しが1行目だけにあるシンプルな表 |
| 先頭列の固定 | A列のみ | 横に長い表で左端の項目名を常に見たいとき |
| ウィンドウ枠の固定 | アクティブセルの上の行と左の列すべて | 複数行・複数列を同時に固定したいとき |
大事なポイントは、「ウィンドウ枠の固定」を使う場合、固定したい範囲の1行下かつ1列右のセルを選択してから操作するということです。たとえば3行目までとB列までを固定したいなら、C4セルをクリックしてから「ウィンドウ枠の固定」を実行します。ここを間違えると、思った場所で固定されずにトラブルの原因になります。
ウィンドウ枠の固定を正しく解除する基本手順
解除の方法そのものはとてもシンプルです。ウィンドウ枠が固定されているとき、「表示」タブの「ウィンドウ枠の固定」をクリックすると、メニューの一番上が「ウィンドウ枠固定の解除」に変わっています。これをクリックすれば、固定はすべて解除されます。
ショートカットキーを使うなら、
Alt
→
W
→
F
→
F
の順番に押すだけです。固定時も解除時もまったく同じキー操作なので、トグル(切り替え)のように使えます。このショートカットはアクティブセルがどこにあっても機能するので、わざわざ固定位置まで戻る必要はありません。
ところが、このシンプルなはずの解除ができないケースがあります。次のセクションから、その原因を一つずつ掘り下げていきましょう。
原因1ブックの保護がかかっている
ウィンドウ枠の固定が解除できない原因として最も多いのが、この「ブックの保護」です。ブックの保護とは、シートの追加・削除・移動・ウィンドウサイズの変更などを制限するExcelのセキュリティ機能です。この設定が有効になっていると、ウィンドウ枠の固定・解除の操作そのものがブロックされます。
確認と解除の手順は次のとおりです。
- 「校閲」タブをクリックして、リボン上の「ブックの保護」ボタンを探します。ボタンが押し込まれた(ハイライトされた)状態になっていれば、保護が有効です。
- 「ブックの保護」をクリックすると、パスワード入力を求められる場合があります。パスワードがわかれば入力して「OK」を押します。
- 保護が解除されたら、改めて「表示」タブから「ウィンドウ枠固定の解除」を実行してください。
注意点として、パスワードがわからない場合は保護を解除できません。他の人から共有されたブックの場合は、作成者にパスワードを確認しましょう。2026年現在のMicrosoft 365でも、この仕様は変わっていません。
「シートの保護」との違いに気をつけよう
「ブックの保護」と「シートの保護」は別物です。シートの保護はセルの編集を制限する機能で、ウィンドウ枠の固定・解除には直接影響しません。しかし、一部の環境やバージョンでは、シートの保護状態でもウィンドウ枠関連の操作が制限されるケースが報告されています。解除できないときは、念のため「校閲」タブから両方の保護状態を確認してみてください。
原因2ページレイアウト表示になっている
これも非常によくあるパターンです。Excelの画面右下に小さなアイコンが3つ並んでいるのを見たことがありますか?左から「標準」「ページレイアウト」「改ページプレビュー」を表すアイコンです。
「ページレイアウト」表示のとき、ウィンドウ枠の固定メニューはグレーアウトして選択できなくなります。これはExcelの仕様で、ページレイアウト表示は印刷結果のイメージを確認するためのモードなので、行・列の固定表示とは設計思想が合わないためです。
対処法はとても簡単で、画面右下の一番左にある格子状のアイコン(「標準」ビュー)をクリックするか、「表示」タブから「標準」を選択するだけです。標準表示に戻せば、すぐにウィンドウ枠の固定・解除の操作ができるようになります。
原因3画面が「分割」モードになっている
ウィンドウ枠の固定と見た目がとても似ている機能に「分割」があります。分割は画面を上下・左右に区切って、それぞれ別々にスクロールできるようにする機能です。「表示」タブのリボン上で「ウィンドウ枠の固定」のすぐ隣に配置されているため、うっかり押し間違えてしまうことがあります。
分割が有効になっている状態でウィンドウ枠の固定を行うと、分割位置でそのまま固定されてしまい、意図しない場所が固定されるという厄介な動作になります。しかも、この状態で「ウィンドウ枠固定の解除」をしても分割が残ったままになるため、「解除したはずなのに線が消えない!」と混乱する原因になるのです。
対処法は、「表示」タブの「分割」ボタンを確認することです。ボタンが押し込まれた状態(暗くなっている状態)なら、もう一度クリックして分割を解除しましょう。分割を解除してから改めてウィンドウ枠の固定を設定し直せば、正しい位置で固定できます。
原因4既存の固定を解除せずに新しい固定をしようとしている
意外と見落としがちなのが、すでにウィンドウ枠が固定されている状態で、別の位置を新たに固定しようとするケースです。Excelでは、ウィンドウ枠の固定は1シートにつき1つしか設定できません。別の場所で固定したいときは、必ず先に今の固定を解除してから再設定する必要があります。
この仕様を知らないと、「何回やっても固定位置が変わらない」「操作しても反応しない」と感じることがあります。まずは一度解除してから、固定したいセルを選び直して再設定しましょう。
原因5ブックの共有モードが有効になっている
複数人で同時にExcelファイルを編集する「ブックの共有」モードがオンになっていると、レイアウトの衝突を防ぐためにウィンドウ枠の固定機能が制限されることがあります。特にMicrosoft 365環境で共有ブックを使っている場合に発生しやすい現象です。
この場合は、「校閲」タブから共有設定を確認し、一時的に共有を解除してからウィンドウ枠の操作を行いましょう。操作が完了したら共有を再度有効にすれば、他のメンバーとの共同作業にも影響しません。
原因6Excelのバグや一時的なエラー
上記の設定をすべて確認しても解決しない場合、Excel自体の一時的なバグが原因の可能性があります。実際に、Microsoft 365のアップデート後にウィンドウ枠の固定が正常に動作しなくなったという報告は、海外のMicrosoftコミュニティやフォーラムでも繰り返し投稿されています。特にmacOS版Excelでは、スクロール時に固定したはずの列が動いてしまう不具合が報告されたこともあります。
こうした場合に試したい対処法をまとめます。まず、ファイルを保存してからExcelを完全に閉じ、再度開くのが最もシンプルな方法です。それでも直らなければ、Windows版なら「コントロールパネル」→「プログラムと機能」からMicrosoft Officeを選び、「変更」→「修復」を実行してみてください。Mac版の場合はOfficeの再インストールが有効なケースもあります。
また、問題が特定のファイルだけで起きるなら、新しいブックにデータをコピーして移すことで解決する場合があります。ファイル自体が破損している可能性があるためです。
原因7アドインやマクロが干渉している
あまり知られていませんが、サードパーティ製のアドインやVBAマクロがウィンドウ枠の動作に影響を与えることがあります。特にVBAで
ActiveWindow.FreezePanes
プロパティを操作するマクロが組まれているブックでは、手動での解除がうまくいかないケースがあります。
まずは「ファイル」→「オプション」→「アドイン」から、有効になっているアドインを一時的に無効にしてみてください。それでも改善しない場合は、VBAエディタ(
Alt
+
F11
で起動)を開いて、ブック内のモジュールにウィンドウ枠を操作するコードが含まれていないか確認しましょう。
もしVBAで強制的にウィンドウ枠の固定を解除したい場合は、以下のコードをイミディエイトウィンドウ(VBAエディタ内で
Ctrl
+
G
で表示)に直接入力して実行できます。
ActiveWindow.FreezePanes = False
たった1行ですが、通常の操作で解除できないときの最終手段として非常に有効です。
トラブルを防ぐために知っておきたい実務テクニック
固定する前に必ず1行目を画面に表示しておく
ウィンドウ枠を固定するとき、画面に1行目が映っていない状態で操作すると、上部の行が表示されなくなってしまうというトラブルが非常に多く報告されています。たとえば画面がスクロールされた状態で50行目付近を見ながら固定すると、1行目〜49行目が見えなくなってしまうのです。
このトラブルに遭遇したら、一旦
Alt
→
W
→
F
→
F
で固定を解除し、
Ctrl
+
Home
でA1セルに戻ってから再度固定を設定しましょう。固定する前に必ずシートの先頭を表示することを習慣にしておくと、このトラブルはほぼ完全に防げます。
印刷時の見出し固定はウィンドウ枠の固定とは別機能
よくある誤解として、「ウィンドウ枠を固定したから印刷時も見出しが各ページに表示されるはず」と思ってしまうケースがあります。しかし、ウィンドウ枠の固定は画面表示だけに効果がある機能で、印刷には反映されません。
印刷で見出しを各ページに表示するには、「ページレイアウト」タブの「印刷タイトル」を使います。「タイトル行」に固定したい行を、「タイトル列」に固定したい列を指定すれば、すべてのページに見出しが繰り返し印刷されます。ウィンドウ枠の固定と印刷タイトルはまったく別の機能なので、それぞれ独立して設定する必要があると覚えておきましょう。
ショートカットキーを活用して作業スピードを上げよう
ウィンドウ枠の固定に関連するショートカットキーを覚えておくと、マウス操作なしで素早く設定・解除ができます。以下にまとめておきます。
| 操作内容 | ショートカットキー |
|---|---|
| ウィンドウ枠の固定/解除 |
Alt
→ W
→ F
→ F
|
| 先頭行の固定 |
Alt
→ W
→ F
→ R
|
| 先頭列の固定 |
Alt
→ W
→ F
→ C
|
どのショートカットも
Alt
→
W
→
F
までは共通で、最後の1文字だけが異なります。
F
はFreeze(固定)、
R
はRow(行)、
C
はColumn(列)の頭文字と覚えておけば、もう忘れることはないでしょう。
上級者向けVBAでウィンドウ枠の固定を自動化する方法
毎回手動でウィンドウ枠を固定するのが面倒な場合、VBAマクロで自動化する方法もあります。たとえば複数のシートに一括でウィンドウ枠を設定したいとき、以下のようなコードが役立ちます。
Sub FreezeAllSheets()
Dim ws As Worksheet
Dim currentSheet As Worksheet
Set currentSheet = ActiveSheet
Application.ScreenUpdating = False
For Each ws In ThisWorkbook.Worksheets
ws.Activate
ActiveWindow.FreezePanes = False
ws.Range("A2").Select
ActiveWindow.FreezePanes = True
Next ws
currentSheet.Activate
Application.ScreenUpdating = True
End Sub
このマクロはすべてのシートで1行目を固定します。
ws.Range("A2").Select
の部分を変更すれば、固定位置を自由に調整できます。また、
Application.ScreenUpdating = False
を入れることで、シートの切り替えが画面上にちらつかず、スムーズに処理されます。
解除だけを一括で行いたいなら、ループ内で
ActiveWindow.FreezePanes = False
だけを実行すればOKです。数十枚のシートがあるブックを扱う業務では、このVBAテクニックが大幅な時短につながります。
情シス歴10年超の現場で遭遇した「本当に厄介な」ウィンドウ枠トラブル集
ここからは、ネット上の一般的な解説記事ではまず触れられない、企業の情報システム部門で10年以上トラブル対応をしてきた視点から、実際に何度も遭遇してきた「本当に厄介な」ウィンドウ枠の固定トラブルを紹介します。正直なところ、前半で紹介した7つの原因でカバーできるのは全体の7割程度です。残りの3割は、ここで紹介するような「そんなの知らないよ」というケースばかりでした。
オートフィルタと組み合わせると固定位置が勝手にずれる問題
これは本当に多くの企業で発生する問題で、しかもExcel 2003の時代から2026年現在のMicrosoft 365まで、十数年以上にわたって根本的に解決されていないバグです。具体的にはこういう状況で起きます。ウィンドウ枠の固定とオートフィルタを両方設定しているブックで、誰かがフィルタをかけた状態のまま保存して閉じます。次にそのファイルを別の人が開くと、ウィンドウ枠の固定位置がフィルタで最初に表示されていた行の位置までずれてしまうのです。
たとえば、1行目を見出しとして固定していたのに、前の人が「東京支店」だけフィルタして保存すると、次に開いたときに5行目あたりで固定されてしまう、といった現象です。しかもブックの保護をかけていてウィンドウ枠の固定メニューがグレーアウトしている状態でも、Excelが勝手に固定位置を書き換えてしまうのが厄介なポイントです。
この問題の根本的な対処法は、後述するVBAマクロで「ブックを開いたときに自動的にフィルタを解除して固定位置をリセットする」処理を仕込むことです。手動の対処としては、必ずフィルタを解除してから保存するというルールを全員に徹底するしかありません。情シスの現場では「フィルタかけたまま保存しないでください」というメールを月に1回は送っている、そんな光景がどこの会社にもあるはずです。
共有ブックで30人がアクセスした結果ウィンドウ枠が壊れる問題
部門の進捗管理表やプロジェクトトラッカーなど、数十人が同時にアクセスするExcelファイルで頻発するのがこのトラブルです。誰かがウィンドウ枠の固定位置を変更してしまい、「スクロールできなくなった」「画面が動かない」という問い合わせが殺到します。
共有ブックの場合、ウィンドウ枠の固定状態は各ユーザーのビュー状態として保存される仕様のはずなのですが、実際には保存タイミングの競合で他のユーザーの設定が上書きされることがあります。特にネットワークドライブ上のファイルでこの問題は顕著で、VPNで接続しているリモートワーカーが保存すると、タイミングのずれでウィンドウ枠の状態が破壊されることもありました。
正直にいうと、この問題に対する完璧な解決策はExcelの仕様上存在しません。ベストプラクティスとしては、そもそも30人で同時にExcelファイルを編集するという運用自体を見直すべきです。SharePointリストやMicrosoft Lists、あるいはGoogleスプレッドシートへの移行を検討するタイミングかもしれません。それでもExcelを使い続けるなら、後述するVBAの「自動復旧マクロ」を仕込むのが現実的な落としどころです。
ファイルを開くたびにウィンドウ枠の固定が消えてしまう問題
「毎朝Excelファイルを開くたびに、すべてのシートでウィンドウ枠の固定をやり直さなければならない」という相談は、情シスあるあるの上位に入ります。これは主に.xlsm形式(マクロ有効ブック)で、かつ元の作成者がすでに退職しているような古いファイルで発生しやすいです。
原因として多いのは、ブック内に残っているVBAコードの中に、ブックを開くときにウィンドウ枠をリセットする処理が書かれているパターンです。
Workbook_Open
イベントや
Workbook_Activate
イベントの中に
ActiveWindow.FreezePanes = False
が1行でもあると、開くたびに固定が解除されます。
まずVBAエディタ(
Alt
+
F11
)を開いて、「ThisWorkbook」モジュールをダブルクリックし、中に書かれているコードを確認してください。そこに
FreezePanes
に関する記述がないか検索(
Ctrl
+
F
で「FreezePanes」を検索)するのが最速の診断方法です。もし見つかったら、その行をコメントアウト(先頭に
'
をつける)するか削除すれば、固定が保持されるようになります。
ハードウェアグラフィックアクセラレーションが原因で固定がずれて見える問題
2025年後半から海外のExcelフォーラムで急増した報告がこれです。ウィンドウ枠の固定自体は正しく設定されているのに、セルをクリックすると実際の位置と表示がずれるという不具合です。たとえばE20セルをクリックしたのにE10セルが選択される、といった症状です。
この問題はExcelのグラフィックスパイプラインが原因で、特にFreeze Panesを使用しているシートで高解像度モニターやマルチモニター環境を利用していると発生しやすい傾向があります。対処法はExcelの「ファイル」→「オプション」→「詳細設定」→「表示」セクションにある「ハードウェアグラフィックアクセラレータを無効にする」にチェックを入れることです。
この設定項目が見当たらない場合は、レジストリから直接設定することもできます。レジストリエディタで
HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Common\Graphics
キーに
DisableHardwareAcceleration
というDWORD値を作成し、値を
1
に設定してください。設定後はExcelを完全に閉じて再起動する必要があります。この方法はExcel 2016以降のすべてのバージョン(Microsoft 365含む)で有効です。
現場で実際に使っている実戦VBAコード集
ここからは、情シスの実務で実際に使用してきたVBAコードを紹介します。すべてのコードはExcel 2016、Excel 2019、Excel 2021、およびMicrosoft 365(2024年12月〜2026年2月のアップデート適用済み)のWindows版で動作確認済みです。Mac版のExcelではActiveWindowの挙動が異なるケースがあるため、Mac環境での使用時は事前にテスト用のブックで試してから本番に適用してください。
ブック内の全シートの固定状態を一括で診断するコード
まず最初に紹介するのは、ブック内のすべてのシートでウィンドウ枠の固定がどうなっているかを一覧表示する診断マクロです。シートが大量にあるブックで「どのシートの固定がおかしいのか」を特定するときに重宝します。
Sub DiagnoseFreezePanes()
Dim ws As Worksheet
Dim currentSheet As Worksheet
Dim msg As String
Set currentSheet = ActiveSheet
Application.ScreenUpdating = False
msg = "=== ウィンドウ枠固定 診断結果 ===" & vbCrLf & vbCrLf
For Each ws In ThisWorkbook.Worksheets
ws.Activate
If ActiveWindow.FreezePanes Then
msg = msg & "【固定あり】 " & ws.Name
msg = msg & " (SplitRow=" & ActiveWindow.SplitRow
msg = msg & ", SplitCol=" & ActiveWindow.SplitColumn & ")" & vbCrLf
Else
msg = msg & "【固定なし】 " & ws.Name & vbCrLf
End If
Next ws
currentSheet.Activate
Application.ScreenUpdating = True
MsgBox msg, vbInformation, "診断完了"
End Sub
このコードは各シートの固定状態に加えて、
SplitRow
と
SplitColumn
の値も表示します。この2つの値を見ることで、実際にどの行・列で固定されているかが数値として把握できるのがポイントです。たとえばSplitRow=3、SplitCol=2なら「3行目まで、B列までが固定されている」ことを意味します。動作確認はExcel 2016以降で行っており、Excel 2013以前では
ActiveWindow.SplitRow
の挙動が異なるケースがあるため注意が必要です。
ブックを開いたときに自動でフィルタ解除と固定位置を復旧するコード
先述した「オートフィルタとの組み合わせで固定位置がずれる問題」への対策として、ブックを開いた瞬間にフィルタを解除して固定をリセットするマクロです。このコードはThisWorkbookモジュールに貼り付けてください(通常のModule1ではなく、VBAエディタの左ペインで「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
On Error Resume Next
ws.Activate
If ws.FilterMode Then ws.ShowAllData
ActiveWindow.FreezePanes = False
ws.Range("A2").Select
ActiveWindow.FreezePanes = True
On Error GoTo 0
Next ws
currentSheet.Activate
Application.ScreenUpdating = True
End Sub
ws.Range("A2").Select
の部分は、固定したい位置に合わせて変更してください。A2なら1行目だけが固定されます。3行目まで固定したければ
ws.Range("A4").Select
に変更します。
On Error Resume Next
を入れているのは、非表示シートや保護されたシートでエラーが発生してもマクロ全体が止まらないようにするためです。このコードはExcel 2016、2019、2021、Microsoft 365で動作確認済みです。なお、ファイル形式が.xlsxのままではマクロは保存できないので、.xlsmまたは.xlsb形式に変更して保存してください。
ユーザーがウィンドウ枠の固定を変更しても自動で元に戻すコード
共有ブックで「勝手にウィンドウ枠を変更する人がいて困る」という場合に使える、いわば「固定の番人」マクロです。このコードはシートモジュールに貼り付けます(対象シートのタブを右クリック→「コードの表示」で開く画面に記述します)。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim cellReturn As String
cellReturn = ActiveCell.Address
Application.EnableEvents = False
If Not ActiveWindow.FreezePanes Then
Me.Range("A2").Select
ActiveWindow.FreezePanes = True
Me.Range(cellReturn).Select
End If
Application.EnableEvents = True
End Sub
このマクロの仕組みはシンプルです。ユーザーがセルを移動するたびに固定状態をチェックし、もし固定が外れていたら自動的に元の位置で再固定するというものです。
Application.EnableEvents = False
を入れないと、セル選択時に自分自身のイベントが再帰的に発火して無限ループになるため、必ずこの行を含めてください。動作確認はExcel 2016〜Microsoft 365(2026年2月時点の最新版)で行っています。
Excelのセーフモードでウィンドウ枠の問題を切り分けるコード
どうしても原因が特定できないとき、情シスではまずExcelをセーフモードで起動して問題を切り分けます。セーフモードではアドイン、カスタムツールバー、スタートアップフォルダのファイルがすべて無効化されるため、これらが原因かどうかを判別できます。
セーフモードの起動方法は、Windowsの「ファイル名を指定して実行」(
Win
+
R
)に
excel /safe
と入力してEnterを押すだけです。セーフモードで問題のファイルを開いてウィンドウ枠の固定・解除が正常に動作すれば、アドインかスタートアップ設定が原因と断定できます。
セーフモードで問題が解消した場合は、通常モードに戻して以下のVBAコードをイミディエイトウィンドウで実行し、アドインを一括無効化したうえで一つずつ有効に戻して犯人を特定しましょう。
Sub ListAllAddins()
Dim addin As addin
Dim msg As String
msg = "=== 有効なアドイン一覧 ===" & vbCrLf & vbCrLf
For Each addin In Application.AddIns
If addin.Installed Then
msg = msg & addin.Name & " : " & addin.FullName & vbCrLf
End If
Next addin
MsgBox msg, vbInformation, "アドイン診断"
End Sub
このコードはExcel 2010以降のすべてのバージョンで動作します。COMアドインについては
Application.COMAddIns
コレクションを同様にループすることで確認できます。
「開いて修復」機能で壊れたウィンドウ枠設定を直す方法
ファイル自体が破損している場合、Excel標準の「開いて修復」機能が有効です。意外と知られていませんが、この機能はウィンドウ枠を含むビュー設定の破損にも対応しています。
手順としては、Excelを起動した状態で
Ctrl
+
O
(ファイルを開くダイアログ)を押し、問題のファイルを選択します。ここで「開く」ボタンを直接クリックするのではなく、ボタン右側の小さな三角形をクリックして「開いて修復する」を選んでください。「修復」と「データの抽出」の2つの選択肢が表示されるので、まずは「修復」を試します。
修復が完了したら、修復されたファイルを必ず別名で保存してから元のファイルと比較してください。この方法で修復されるのはファイル内のXML構造レベルの破損であり、ウィンドウ枠の設定情報(.xlsx内部のworkbook.xmlに記載されている
pane
要素)もこの修復対象に含まれます。
ただし注意点があります。「開いて修復」機能は元のファイルを直接変更してしまう場合があるため、必ず事前にファイルのバックアップを取ってから実行してください。修復後にかえって状態が悪化した事例も実際にあるので、バックアップは必須です。
xlsxファイルを手動でZIP展開してウィンドウ枠設定を修復する上級テクニック
これは情シスでもごく一部の人しかやらない、最終手段ともいえる方法です。Excelの.xlsx/.xlsm/.xlsbファイルは実はZIP形式のアーカイブで、中身はXMLファイルの集合体です。ウィンドウ枠の固定情報は、
xl/workbook.xml
内の
<bookViews>
セクションと、各シートの
xl/worksheets/sheet1.xml
内の
<sheetViews>
セクションに記録されています。
具体的な手順は以下のとおりです。
- 問題の.xlsxファイルをコピーして、拡張子を
.zipに変更します(例
report.xlsx→
report.zip)。
- ZIPファイルを展開し、
xl/worksheets/フォルダ内の対象シートのXMLファイル(
sheet1.xmlなど)をテキストエディタで開きます。
-
<sheetViews>タグの中にある
<pane>要素を探します。この要素が壊れていたり、
ySplitや
xSplitの値が異常に大きい場合、それがウィンドウ枠のトラブルの原因です。
-
<pane>要素を丸ごと削除するか、正しい値に書き換えます。たとえば1行目だけを固定する場合は
<pane ySplit="1" topLeftCell="A2" activePane="bottomLeft" state="frozen"/>と記述します。
- XMLファイルを保存し、展開したファイル群をすべて選択してZIPに再圧縮した後、拡張子を
.xlsxに戻します。
この方法は.xlsb形式(バイナリブック)では使えません。.xlsbはXMLではなくバイナリ形式で保存されるためです。.xlsb形式のファイルでこの問題が発生した場合は、一度.xlsx形式に保存し直してからXML編集を行い、再度.xlsbに変換するという手順が必要になります。
なお、この作業でファイルを壊してしまうリスクは相当高いので、絶対にバックアップを取ってから実施してください。そして正直なところ、ここまでやるケースは年に1回あるかないかです。
プリンタドライバがウィンドウ枠トラブルを引き起こす盲点
これは情シスの現場で実際に経験して驚いた事例です。ある時期、社内の特定のPCだけでExcelのウィンドウ枠固定後にオートフィルタを解除するとExcelが完全にフリーズする、という問題が発生しました。さまざまな切り分けを行った結果、原因はペンタブレット(Wacom製)のドライバでした。
ドライバの描画処理がExcelのグラフィックスレンダリングと干渉し、ウィンドウ枠が固定されている状態でフィルタの表示/非表示を切り替えると描画が停止してしまうという、非常に再現条件が特殊な不具合でした。ペンタブレットのドライバをアンインストールしたところ、問題は即座に解消しました。
同様に、古いプリンタドライバや仮想プリンタドライバがExcelの描画に影響を与えるケースもあります。特に「既定のプリンタ」に設定されているプリンタが実際には存在しない(撤去済みのネットワークプリンタなど)場合、Excelの表示全般に悪影響が出ることがあります。ウィンドウ枠のトラブルが特定のPCだけで発生する場合は、デバイスドライバを疑ってみてください。
「テーブル機能」をウィンドウ枠の固定の代替として使うという発想
ここで一つ、根本的に違うアプローチを提案します。もしあなたが「見出し行を常に表示したい」というだけの目的でウィンドウ枠の固定を使っているなら、Excelのテーブル機能(
Ctrl
+
T
)を使った方がトラブルが少なく、はるかにスマートです。
Excelのテーブル機能でデータ範囲をテーブルに変換すると、テーブル内を下にスクロールしたときに、列の見出しがExcelの列名(A, B, C…)の位置に自動的に表示されるという機能があります。つまり、ウィンドウ枠の固定を一切使わなくても、見出しが常に見える状態になるのです。
テーブル機能のメリットはそれだけではありません。オートフィルタとの相性問題が発生しない、共有ブックで固定位置がずれることがない、ブックの保護状態に左右されない、といったウィンドウ枠の固定で発生するほぼすべてのトラブルを回避できます。もちろん、行と列の両方を固定したい場合や、テーブルに変換できないレイアウトのシートではウィンドウ枠の固定が必要ですが、「行の見出しを固定したいだけ」というニーズならテーブル機能の方が圧倒的に安定しています。
ウィンドウ枠トラブルの発生を防ぐ運用ルールチェックリスト
ここまでの内容を踏まえて、企業の情シス部門で実際に配布していた「ウィンドウ枠トラブル防止チェックリスト」を公開します。日常業務でExcelを使うすべての方に実践していただきたい内容です。
| チェック項目 | 確認内容 | 頻度 |
|---|---|---|
| 保存前のフィルタ確認 | ファイルを保存する前に、すべてのオートフィルタを解除してから保存する | 毎回 |
| 表示モードの確認 | 画面右下の表示モードが「標準」になっているか確認する | 固定操作時 |
| 分割モードの確認 | 「表示」タブの「分割」ボタンが押し込まれていないか確認する | 固定操作時 |
| 先頭行の表示確認 | ウィンドウ枠を固定する前に
Ctrl
+ Home
で先頭に戻る |
固定操作時 |
| 余分なウィンドウの確認 | 保存前に「新しいウィンドウ」で開いた追加ウィンドウがないか確認する | 保存時 |
| Officeアップデートの確認 | Excelのバージョンが最新に更新されているか確認する | 月1回 |
このチェックリスト自体は特別なことは書いていないように見えるかもしれません。でも、情シスの現場でウィンドウ枠関連の問い合わせを分析すると、約8割がこのチェックリストのどれかを守っていれば防げたトラブルでした。特に「保存前のフィルタ確認」は、これだけで問い合わせが半分に減った実績があります。
ぶっちゃけこうした方がいい!
ここまで読んでくれた方には、正直に話します。ウィンドウ枠の固定に関するトラブル対応を10年以上やってきた立場からいうと、ウィンドウ枠の固定は「使えるなら使う、でもそれに依存しすぎない」のが正解です。
なぜかというと、この機能はExcelの中でも驚くほど不安定な領域だからです。ブックの保護、共有ブック、オートフィルタ、VBA、グラフィックドライバ、ファイル形式——ありとあらゆる要素が干渉してきて、しかもMicrosoft自身が十数年にわたってバグを完全に修正できていません。今回紹介したオートフィルタとの競合なんて、Excel 2003の時代から報告されていて、2026年のMicrosoft 365でもまだ完全には解消されていないんです。
だから個人的にはこうした方が、ぶっちゃけ楽だし効率的だと思います。まず、単純に「見出しを固定したい」だけなら、テーブル機能(
Ctrl
+
T
)を使ってください。テーブルならウィンドウ枠の固定で起きるトラブルの大半が最初から発生しません。それでもウィンドウ枠の固定が必要なケース——たとえば行と列の両方を固定したい、テーブルに変換できない複雑なレイアウトがある、といった場合は使うしかないけど、その場合はWorkbook_OpenイベントにVBAの自動復旧コードを仕込んでおくのが鉄板です。
そして何より大事なのは、ファイルを閉じる前にオートフィルタを全部外す、これを習慣にすることです。ウィンドウ枠のトラブルの半分はこれだけで防げます。「でもフィルタかけた状態で保存したい場面もあるじゃないか」と思うかもしれません。その気持ちはわかりますが、フィルタ状態を保存することで得られる利便性と、ウィンドウ枠がぶっ壊れてファイルを修復する手間を天秤にかけたら、フィルタを解除してから保存する方が100倍マシです。
最後にもう一つ。どうしても解決しないときは、新しいブックにデータだけをコピーして移すのが最短経路です。ウィンドウ枠の設定はブックのビューステート(表示状態情報)に保存されているので、データだけを新しいブックに移せば、壊れた設定ごとリセットされます。XMLを手動編集するとか、レジストリをいじるとか、そういうのは最終手段であって、まず試すべきは「新しい器にデータを移す」という発想です。10年間で学んだ最大の教訓は、Excelファイルと人間関係は一緒で、こじれたら修復するより新しく作り直す方が早いということです。まあ、人間関係の方はそう簡単にいかないですけどね。
Excelのウィンドウ枠固定が解除できないに関する疑問解決
ウィンドウ枠の固定を部分的に解除することはできますか?
残念ながら、行だけ解除して列の固定は残す、といった部分的な解除はExcelではできません。ウィンドウ枠固定の解除を実行すると、行と列の固定がすべて一括で外れます。行だけ、または列だけを固定したい場合は、一度すべて解除してから、改めて目的のセルを選んで再設定する必要があります。
Googleスプレッドシートでも同じ方法で固定できますか?
Googleスプレッドシートにもウィンドウ枠の固定に相当する機能はありますが、操作方法が異なります。スプレッドシートでは「表示」メニューから「固定」を選び、固定する行数・列数を直接指定する仕組みです。Excelのように「セルを選んでから固定」という考え方ではないため、Excelに慣れた人は最初少し戸惑うかもしれません。ただし、スプレッドシートの場合はブックの保護でウィンドウ枠の固定がブロックされるといったトラブルは少ないです。
Mac版Excelでもウィンドウ枠の固定・解除の操作は同じですか?
基本的な操作手順はWindows版と同じで、「表示」タブから「ウィンドウ枠の固定」を選ぶ流れは変わりません。ただし、Mac版ではAltキーベースのショートカットが使えないため、代わりにメニューバーからの操作が中心になります。また、Mac版のExcelでは固定したはずの列がスクロール時に動いてしまう不具合が一部のバージョンで報告されており、その場合はOfficeの最新アップデートを適用することで改善される可能性があります。
ウィンドウ枠を固定しても、ファイルを開き直すと固定が消えてしまうのはなぜですか?
これは主にファイルを正しく保存できていないか、「新しいウィンドウ」機能で開いた別ウィンドウを保存してしまったことが原因です。ウィンドウ枠の固定はウィンドウ単位の設定なので、複数ウィンドウで開いた場合に元のウィンドウを先に閉じてしまうと、固定設定が失われることがあります。ファイルを保存する前に、余分なウィンドウが開いていないか確認してから保存する習慣をつけましょう。
今すぐパソコンやスマホの悩みを解決したい!どうしたらいい?
いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良…もうイライラしない!」
あなたはこんな経験はありませんか?
✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦
平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。
LINEでメッセージを送れば即時解決!
すでに多くの方が私の公式LINEからお悩みを解決しています。
最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。
誰でも無料で使えますので、安心して使えます。
問題は先のばしにするほど深刻化します。
小さなエラーがデータ消失や重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。
あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。
ぜひ、あなたの悩みを私に解決させてください。
まとめ
Excelのウィンドウ枠固定が解除できない問題は、原因さえ特定できれば、ほとんどの場合すぐに解決できます。この記事で紹介した7つの原因と対処法を改めて振り返ると、ブックの保護の確認、表示モードの切り替え、分割モードの解除がトップ3です。それでもダメなら、Excelの再起動やVBAによる強制解除という奥の手もあります。
ウィンドウ枠の固定は、大量のデータを正確に入力・確認するために欠かせない機能です。正しい設定方法と解除方法をしっかり身につけて、日々のExcel作業をもっと快適にしていきましょう。困ったときはこの記事に立ち戻って、一つずつ原因を潰していけば、必ず解決できるはずです。






コメント