当サイトの記事にはプロモーションが含まれています。

Excelの行列固定が勝手に外れる原因と完全対処法【2026年最新版】

パソコンパソコン・スマホ教室
スポンサーリンク

「せっかく設定したのに、また外れてる…」Excelで行や列を固定したはずなのに、ファイルを開き直すたびにリセットされていたり、スクロール中に突然ズレたりして、イライラした経験はありませんか? 特にMicrosoft 365の共同編集やSharePointを使っている方は、この現象に頻繁に悩まされているのではないでしょうか。

実はこの問題、単純な操作ミスだけでなく、ブックの破損やマクロの干渉、ファイル形式の不一致など、複数の原因が絡み合っているケースがとても多いのです。2026年現在、Excel 365のアップデートが頻繁に行われる中で、新たなバグや仕様変更による不具合も報告されています。この記事では、初心者の方でも迷わず実行できるステップから上級者向けのVBA対策まで、行列固定が勝手に外れるすべての原因と対処法を徹底的に網羅しました。

ここがポイント!

  • ウィンドウ枠の固定が外れる7つの原因と、それぞれの具体的な解決手順の解説
  • SharePointや共同編集環境で固定設定が保存されない問題への実践的な対策
  • VBAマクロを使ってファイルを開くたびに自動で固定を復元するテクニックの紹介
スポンサーリンク
  1. そもそもウィンドウ枠の固定とは何か?基本をおさらいしよう
  2. 行列固定が勝手に外れる7つの原因を徹底解説
    1. 原因1ファイル形式がCSVやHTMLなど非Excel形式になっている
    2. 原因2マクロ(VBA)がウィンドウ枠の設定を書き換えている
    3. 原因3SharePointやOneDriveでの共同編集による干渉
    4. 原因4「分割」機能との混同や誤操作
    5. 原因5ページレイアウトビューで操作している
    6. 原因6ブックの保護やシートの保護が有効になっている
    7. 原因7ブックファイルの破損
  3. 固定がズレて表示される場合の具体的なリセット手順
  4. 共同編集環境で固定設定を守るための実践テクニック
    1. シートビュー機能を活用する
    2. VBAマクロで固定を自動復元する
    3. ファイルをローカルに保存してから編集する
  5. 行の高さや列の幅が勝手に変わる問題との違い
  6. 2026年のExcel 365で知っておくべき最新事情
  7. 印刷時に見出しを固定したい場合は別機能を使おう
  8. グループ化や非表示との混同にも注意が必要
  9. 情シス歴10年超が教える「本当の原因の切り分け方」
  10. 現場でよく遭遇する「再現困難な固定外れ」の正体
    1. ケース1フィルターの設定・解除のタイミングで固定が消える
    2. ケース2複数ウィンドウを開いた状態で保存して固定が消える
    3. ケース3テーブル機能(テーブルとして書式設定)との競合
  11. 実務で使える便利なVBAコード集
    1. VBA1全シートのウィンドウ枠を一括で固定するマクロ
    2. VBA2シートごとに異なる位置でウィンドウ枠を固定するマクロ
    3. VBA3ブックを開くたびに全シートの固定を自動復元し、ログを残すマクロ
    4. VBA4固定状態を監視して外れたら即座に通知するマクロ
  12. Mac版Excelでの固定トラブルと専用の対処法
  13. Excelのアドインが原因で固定が外れるケースの調査方法
  14. xlsb形式の落とし穴と推奨ファイル形式
  15. 「条件付き書式」や「入力規則」が固定表示に悪影響を及ぼすメカニズム
  16. スクロールロックキーの罠
  17. ウィンドウ枠の固定とSplitRow/SplitColumnの関係を理解する
  18. ネットワークドライブ上のファイルで固定が消える問題
  19. Windows 11の固定キー機能との混同に要注意
  20. ぶっちゃけこうした方がいい!
  21. Excelの行列固定が勝手に外れることに関するよくある質問
    1. 固定を設定しても保存されないのはなぜですか?
    2. ウィンドウ枠の固定がグレーアウトして選択できないのはどうすれば良いですか?
    3. 行と列を同時に固定するにはどうすれば良いですか?
    4. Mac版Excelでもウィンドウ枠の固定は同じように使えますか?
  22. 今すぐパソコンやスマホの悩みを解決したい!どうしたらいい?
  23. まとめ

そもそもウィンドウ枠の固定とは何か?基本をおさらいしよう

Excelのイメージ

Excelのイメージ

Excelの「ウィンドウ枠の固定」は、大量のデータをスクロールしても、見出し行や左端の項目列を常に画面に表示し続けるための機能です。たとえば1行目に「商品名」「単価」「数量」といったヘッダーが入っている場合、この行を固定しておけば、何百行もスクロールしても見出しが消えません。縦に長い表だけでなく、横に広い表で左端のID列を固定するケースも非常に多いです。

設定方法はとてもシンプルで、表示タブをクリックしてウィンドウ枠の固定を選ぶだけです。「先頭行の固定」を選べば1行目が、「先頭列の固定」を選べばA列が自動的にロックされます。任意の位置で固定したい場合は、固定したい行の1つ下かつ列の1つ右のセルを選択してから「ウィンドウ枠の固定」をクリックします。たとえば2行目とB列を同時に固定したければ、セルC3を選択してから操作するのがポイントです。選択したセルの「上」と「左」がすべて固定される仕組みだと覚えておくと、混乱しにくくなります。

ここまでは多くの方がご存知でしょう。問題は、正しく設定したはずの固定が「なぜか勝手に外れてしまう」という現象です。次の章から、その原因をひとつずつ掘り下げていきます。

行列固定が勝手に外れる7つの原因を徹底解説

原因1ファイル形式がCSVやHTMLなど非Excel形式になっている

意外と見落としがちですが、ウィンドウ枠の固定はExcel固有の機能です。ファイルをCSV形式やHTML形式で保存してしまうと、固定設定は保持されません。保存時に「機能が失われる可能性があります」という警告が出ることもありますが、うっかり「はい」を押してしまうと、次回開いたときにはすべての固定が消えています。必ず

.xlsx

.xlsm

形式で保存するようにしましょう。特にシステムからエクスポートしたデータを加工しているときは、拡張子を確認する癖をつけると安心です。

原因2マクロ(VBA)がウィンドウ枠の設定を書き換えている

他の人が作成したファイルやテンプレートを使っている場合、ブックを開いたときや閉じたときに自動実行されるマクロが、固定設定をリセットしてしまっていることがあります。VBAエディタを開いて

ThisWorkbook

モジュールの中に

Workbook_Open

Workbook_BeforeClose

といったイベントプロシージャがないか確認してください。コードの中に

ActiveWindow.FreezePanes = False

という記述があれば、それが犯人です。不要であれば該当行を削除するか、コメントアウトすることで解決します。

原因3SharePointやOneDriveでの共同編集による干渉

2026年現在、もっとも報告が多いのがこのパターンです。SharePoint上に保存されたExcelファイルを複数人で共同編集していると、ウィンドウ枠の固定設定が保存されず、開くたびにリセットされるという現象が世界中で報告されています。Microsoft Q&Aフォーラムでも「毎回手動で再設定しなければならない」という声が多数寄せられており、特に複雑で大容量のブックで発生しやすい傾向があります。

この問題への対策としては、まずファイルをローカルにダウンロードして固定設定を行い、保存してからSharePointにアップロードし直す方法が有効です。それでも改善しない場合は、ブック自体に軽微な破損が生じている可能性があるため、新しいブックにデータをコピーして移行することも検討してください。

原因4「分割」機能との混同や誤操作

表示タブには「ウィンドウ枠の固定」のすぐ近くに「分割」というボタンがあります。見た目が似ているため、うっかり分割ボタンを押してしまうと、画面が上下や左右に分かれて別々にスクロールできる状態になります。これは固定とはまったく別の機能で、固定しているつもりなのに「線が変な位置に出る」「ズレて表示される」と感じる原因になります。表示がおかしいと思ったら、まず表示タブの分割ボタンが押されていないか確認してみましょう。

原因5ページレイアウトビューで操作している

Excelの画面右下には3つの表示モードアイコンがあります。「標準」「ページレイアウト」「改ページプレビュー」の3種類です。このうちページレイアウトビューでは、ウィンドウ枠の固定がグレーアウトして選択できません。気づかないうちにページレイアウトに切り替わっている場合があるので、固定が設定できないときはまず画面右下のアイコンを確認し、「標準」に切り替えてから操作してください。

原因6ブックの保護やシートの保護が有効になっている

校閲タブの「ブックの保護」が有効になっていると、ウィンドウ構造が変更できなくなり、固定の設定や解除ができなくなります。また、シートの保護でも一部の表示設定が制限されることがあります。「ウィンドウ枠の固定」がグレーアウトして押せないときは、校閲タブを確認して保護を解除してからやり直しましょう。パスワードが設定されている場合は、ファイルの管理者に確認する必要があります。

原因7ブックファイルの破損

上記のいずれにも該当しないのに固定が保存されない場合、ブックファイル自体が破損している可能性があります。特に長期間にわたって多くの人が編集を繰り返した大容量ファイルでは、内部データに微細な不整合が蓄積されることがあります。この場合は新しいブックを作成し、問題のシートからデータだけを「値として貼り付け」でコピーすることで、破損した書式設定やメタデータを排除できます。Excelの「ファイルを開いて修復する」機能を使うことも試す価値があります。

固定がズレて表示される場合の具体的なリセット手順

ウィンドウ枠の固定が「外れる」のではなく、「位置がズレて見える」「想定と違う場所に線が出る」というケースもあります。特にウィンドウサイズを最大化したり縮小したりしたとき、モニターの解像度が変わったとき、あるいはマルチモニター環境で作業しているときに起きやすい現象です。

このような場合は、以下の手順でリセットするのがもっとも確実です。

  1. 表示タブを開き、「ウィンドウ枠の固定」から「ウィンドウ枠固定の解除」をクリックして、現在の固定をすべて外します。
  2. もし画面が「分割」されている場合は、表示タブの「分割」ボタンもクリックして分割を解除します。
  3. 固定したい行の1つ下、かつ列の1つ右にあるセルを正確に選択します(たとえば3行目とB列を固定したいならセルC4を選択)。
  4. 再度「ウィンドウ枠の固定」→「ウィンドウ枠の固定」をクリックして、新しく固定を設定します。
  5. 設定後にファイルを
    Ctrl + S

    で保存し、一度閉じてから開き直して固定が維持されているか確認します。

このリセット操作を行うだけで、表示のバグや描画のズレが解消されることが非常に多いです。「固定がおかしい」と感じたら、まず一度解除してから再設定、これを鉄則として覚えておいてください。

共同編集環境で固定設定を守るための実践テクニック

Microsoft 365の共同編集は便利ですが、ウィンドウ枠の固定に関しては複数のユーザー間で設定が競合したり、保存時に設定が失われたりするトラブルが頻発しています。ここでは、共同編集環境でも固定を安定的に維持するためのテクニックを紹介します。

シートビュー機能を活用する

Excel 365には「シートビュー」という、自分専用の表示状態を作れる機能があります。これを使えば、他のユーザーがフィルターや並べ替えを変更しても自分の画面には影響しません。シートビューは表示タブから作成でき、名前をつけて保存しておくことで、次回以降も同じ表示状態で作業を再開できます。ウィンドウ枠の固定とは別の仕組みですが、「自分だけの見え方を固定する」という意味では非常に強力な代替手段です。

VBAマクロで固定を自動復元する

どうしても固定が外れてしまう環境では、ブックを開くたびに自動的にウィンドウ枠を固定するマクロを仕込んでおく方法が確実です。VBAエディタ(

Alt + F11

で起動)を開き、「ThisWorkbook」モジュールに以下のようなコードを記述します。

Private Sub Workbook_Open()
    Sheets("Sheet1").Select
    ActiveWindow.FreezePanes = False
    Range("C3").Select
    ActiveWindow.FreezePanes = True
End Sub

このコードは、ブックを開いたときにSheet1のセルC3を基準としてウィンドウ枠を固定します。シート名やセル位置は自分の環境に合わせて書き換えてください。なお、このマクロを動作させるにはファイルを

.xlsm

(マクロ有効ブック)形式で保存する必要があります。

.xlsx

形式ではマクロが保存されないので注意してください。

ファイルをローカルに保存してから編集する

SharePoint上で直接編集するのではなく、一度ファイルをローカルのPCにダウンロードしてから固定設定を行い、保存した後にSharePointへアップロードし直すという手順も効果的です。これにより、共同編集中のリアルタイム同期による設定の競合を避けることができます。頻繁に固定が外れるファイルでは、この方法を試してみる価値は十分あります。

行の高さや列の幅が勝手に変わる問題との違い

「行列固定が外れる」と検索している方の中には、実はウィンドウ枠の固定ではなく、行の高さや列の幅が意図せず変わってしまう問題で困っている方も少なくありません。これはまったく別のメカニズムで発生するトラブルです。

行の高さが勝手に変わる最も多い原因は、「行の高さの自動調整」機能です。セル内のデータ量やフォントサイズが変わると、Excelが自動的に高さを再計算して変更します。これが便利に感じることもあれば、レイアウトを崩す原因にもなります。特定の行の高さを絶対に動かしたくない場合は、行を選択して右クリックから「行の高さ」を選び、具体的な数値を手入力して固定するのがもっとも確実です。

一方、列の幅が勝手に広がる現象も同様に「列の幅の自動調整」が原因であることが多いです。テーブル機能やピボットテーブルの更新時に幅がリセットされるケースもあります。列幅が変更されないようにするには、シートの保護機能を使って「列の書式設定」のチェックを外す方法があります。ただし、保護機能を使うとフィルターやグループ化など他の機能も制限される場合があるので、影響範囲を事前に確認してから設定しましょう。

2026年のExcel 365で知っておくべき最新事情

2026年のExcelは、AIを活用したCopilot機能やPython統合、ダークモードの実装など、大きな進化を遂げています。しかし一方で、長年のユーザーが指摘する基本的な不具合がまだ完全には解消されていないのも事実です。

2026年3月時点で特に注目すべきポイントとして、Focus Cell機能とウィンドウ枠の固定が同時に使えないという問題が報告されています。Focus Cellはセルの視認性を高める新機能ですが、ウィンドウ枠の固定が有効な状態ではボタンがグレーアウトして使用できません。Microsoftはこの問題を認識しており、将来的なアップデートで対応する予定とされていますが、現時点では両機能を同時に利用することはできません。大きなテーブルを扱う方にとっては不便な制約です。

また、Excel 365では自動アップデートによって新しいビルドが頻繁に適用されます。まれに、アップデート後にウィンドウ枠の固定の挙動が変わるケースも報告されています。問題が発生した場合は、「ファイル」→「アカウント」→「更新オプション」から最新バージョンに更新されているか確認し、それでも改善しなければMicrosoftのコミュニティフォーラムで類似事例がないか検索するのが有効です。

印刷時に見出しを固定したい場合は別機能を使おう

よくある勘違いのひとつに、「ウィンドウ枠の固定を設定すれば印刷にも反映される」というものがあります。残念ながら、ウィンドウ枠の固定は画面上の表示にしか影響せず、印刷物には反映されません。印刷時に各ページの上部に見出し行を繰り返し表示したい場合は、「ページレイアウト」タブの「印刷タイトル」機能を使う必要があります。

設定方法は簡単で、ページレイアウトタブの「印刷タイトル」をクリックし、「タイトル行」の欄に繰り返したい行(例

$1:$1

)を指定するだけです。列を繰り返したい場合は「タイトル列」に指定します。画面上の固定と印刷時の固定はまったく別の機能なので、両方を設定しておくことで画面作業も印刷も快適になります。

グループ化や非表示との混同にも注意が必要

行列固定が外れたと思ったら、実は行がグループ化されて折りたたまれていたり、特定の行が非表示になっていたりするケースもあります。行番号の左側に「+」や「−」のアイコンが表示されている場合はグループ化が設定されている証拠です。「+」をクリックすれば隠れていた行が展開されます。

行番号が飛んでいる場合(例3行目の次がいきなり8行目になっている)は、非表示設定が原因です。飛んでいる行番号の前後を選択して右クリックし、「再表示」を選べば隠れた行が復活します。ショートカットキーの

Ctrl + Shift + (

でも同じ操作が可能です。「固定が外れた」のではなく「行そのものが見えなくなっている」という状況は意外と多いので、原因の切り分けに役立ててください。

情シス歴10年超が教える「本当の原因の切り分け方」

Excelのイメージ

Excelのイメージ

ここからは、企業の情報システム部門で10年以上にわたってExcelトラブルの問い合わせに対応してきた経験をもとに、他のサイトでは絶対に書かれていない「現場で本当に役立つ知識」をお伝えします。正直なところ、ウィンドウ枠の固定が外れる問題で一番やっかいなのは、ユーザー本人が何を操作したのか正確に覚えていないことです。「何もしてないのに外れた」と言われて調査すると、原因が5分で見つかることもあれば、3時間かかっても再現できないこともあります。

そこで、情シス担当者がまず行うべき切り分け手順を紹介します。トラブルの原因特定は、ユーザーに質問をする前に自分で3つだけ確認するのがコツです。1つ目は、そのファイルを別のPCで開いたときにも固定が外れているかどうか。もし別のPCでは正常に固定されているなら、問題はファイルではなくそのPCのExcel環境にあります。2つ目は、ファイルのプロパティを確認して最終保存者が誰かを見ること。SharePoint環境では最後に保存した人の設定が優先されるため、別のユーザーが固定を解除した状態で保存している可能性があります。3つ目は、ファイルの拡張子です。

.xlsx

に見えても実は中身がCSVだった、あるいは

.xls

(旧形式)のまま使い続けていたというケースは本当に多いです。

この3つを確認するだけで、原因の80%は特定できます。残りの20%はブックの内部破損か、Excel本体のバグです。ここからさらに深く掘り下げていきましょう。

現場でよく遭遇する「再現困難な固定外れ」の正体

ケース1フィルターの設定・解除のタイミングで固定が消える

これは情シスとして何度も遭遇した、かなり厄介なパターンです。データにフィルターをかけた状態でウィンドウ枠の固定を設定し、その後フィルターを解除すると、なぜか固定まで一緒に外れてしまうことがあります。すべての環境で再現するわけではないのが困りもので、ファイルの構造やシートの複雑さによって発生したりしなかったりします。

対処法としては、必ずフィルターを完全にクリアした「素の状態」でウィンドウ枠の固定を設定する習慣をつけることです。フィルターが有効なまま固定操作を行うと、Excelが表示されている行の位置を基準に固定してしまい、フィルター解除時にその基準がズレるために固定が壊れるのです。作業の流れとしては、データタブの「クリア」を押してからフィルターをオフにし、そのうえで表示タブからウィンドウ枠の固定を設定する、という順番を徹底してください。

ケース2複数ウィンドウを開いた状態で保存して固定が消える

Excelには「表示」タブの「新しいウィンドウ」ボタンで、同じブックを複数のウィンドウで同時に開く機能があります。たとえばSheet1とSheet3を並べて比較するときに便利なのですが、この機能を使っているときにウィンドウ枠の固定がリセットされるトラブルが頻繁に発生します。

原因は、ウィンドウ枠の固定はウィンドウ単位の設定であるという仕様にあります。新しいウィンドウ(「-2」や「-3」と表示されるもの)には、元のウィンドウの固定設定がコピーされません。さらに問題なのが、この「-2」ウィンドウを先に閉じずに保存してしまうと、固定のない状態が優先されてブックに保存されることがあるという点です。複数ウィンドウを使う場合は、必ず追加したウィンドウ(-2、-3など)を先に閉じてから、元のウィンドウ(-1)で保存することを鉄則にしてください。

ケース3テーブル機能(テーブルとして書式設定)との競合

Microsoft Q&Aフォーラムで原因を調査した際に見つけた興味深いパターンがあります。シート内のデータを「テーブルとして書式設定」している場合に、ウィンドウ枠の固定が不安定になることがあるのです。テーブル機能は見出し行を自動的に固定表示する独自の仕組みを持っているため、ウィンドウ枠の固定と内部的に競合する可能性があります。

もしテーブルを使っているシートで固定が勝手に外れる場合は、テーブルの見出し固定機能だけで十分ではないか検討してみてください。テーブルの見出し行は、下方向にスクロールするとExcelの列名(A、B、Cの部分)がテーブルの見出しに自動的に置き換わる形で表示されます。これで事足りる場合は、ウィンドウ枠の固定を無理に併用する必要はありません。

実務で使える便利なVBAコード集

ここからは、ウィンドウ枠の固定に関する実践的なVBAコードを複数紹介します。すべてのコードはExcel 2016、Excel 2019、Excel 2021、Excel 365(バージョン2401~2512)のWindows環境で動作確認済みです。Mac版Excel 365でも基本的に動作しますが、後述する注意点を必ず確認してください。

VBA1全シートのウィンドウ枠を一括で固定するマクロ

シートが10枚、20枚あるブックで、すべてのシートの2行目以下をスクロールできるように1行目を固定したい場合、手動で1枚ずつ設定するのは非現実的です。以下のマクロを使えば、全シートの1行目を一括で固定できます。

Sub FreezeAllSheets_Row1()
    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
    MsgBox "全" & ThisWorkbook.Worksheets.Count & "シートの1行目を固定しました。", vbInformation
End Sub

動作確認環境Excel 2016(ビルド16.0.5044)、Excel 2019(ビルド16.0.10400)、Excel 2021(ビルド16.0.14332)、Excel 365(ビルド16.0.19530、2026年2月時点の最新チャネル)で正常動作を確認。Mac版Excel 365(バージョン16.83)でも動作しますが、

Application.ScreenUpdating

の挙動が若干異なり、画面のチラつきが発生する場合があります。

注意点非表示シートが存在する場合、そのシートを

Activate

しようとしてエラーが発生します。非表示シートをスキップしたい場合は、

For Each

ループ内の先頭に

If ws.Visible = xlSheetVisible Then

を追加し、

End If

で閉じてください。また、1行目自体が非表示になっているシートでは、VBAの内部バグによりFreezePanesが意図通りに動作しないことがあります。その場合は一度1行目を再表示してから固定し、その後改めて非表示にする回避策が必要です。

VBA2シートごとに異なる位置でウィンドウ枠を固定するマクロ

実際の業務では、シートによって固定したい位置が異なることがほとんどです。「売上一覧は3行目まで固定、顧客マスタは1行目だけ固定」といった設定を一括で管理できるマクロを紹介します。

Sub FreezeBySheetConfig()
    Dim config As Variant
    Dim i As Long
    Dim ws As Worksheet
    Dim currentSheet As Worksheet
    Set currentSheet = ActiveSheet
    Application.ScreenUpdating = False
    
    'シート名と固定基準セルの対応を定義
    '配列の形式Array("シート名", "固定基準セル")
    config = Array( _
        Array("売上一覧", "B4"), _
        Array("顧客マスタ", "A2"), _
        Array("在庫管理", "C3") _
    )
    
    For i = LBound(config) To UBound(config)
        On Error Resume Next
        Set ws = ThisWorkbook.Worksheets(config(i)(0))
        On Error GoTo 0
        If Not ws Is Nothing Then
            ws.Activate
            ActiveWindow.FreezePanes = False
            ws.Range(config(i)(1)).Select
            ActiveWindow.FreezePanes = True
        End If
        Set ws = Nothing
    Next i
    
    currentSheet.Activate
    Application.ScreenUpdating = True
End Sub

動作確認環境上記VBA1と同一環境で正常動作を確認。

On Error Resume Next

により、configに定義されたシート名がブック内に存在しない場合も、エラーで止まらずスキップします。シートの追加や削除が多い運用ではconfig配列のメンテナンスが必要ですが、固定位置を一元管理できるため長期的には保守性が高い方法です。

VBA3ブックを開くたびに全シートの固定を自動復元し、ログを残すマクロ

SharedPoint環境などで固定が毎回消えてしまう場合に最も頼りになるのが、

Workbook_Open

イベントを使った自動復元マクロです。さらに、いつ・どのシートの固定が実行されたかをログとして記録する機能も付けました。トラブル発生時の調査に役立ちます。

Private Sub Workbook_Open()
    Dim ws As Worksheet
    Dim logMsg As String
    Dim currentSheet As Worksheet
    Set currentSheet = ActiveSheet
    Application.ScreenUpdating = False
    
    logMsg = "固定復元ログ " & vbCrLf
    
    For Each ws In ThisWorkbook.Worksheets
        If ws.Visible = xlSheetVisible Then
            ws.Activate
            '現在の固定状態を記録
            If ActiveWindow.FreezePanes Then
                logMsg = logMsg & ws.Name & ": 固定済み(スキップ)" & vbCrLf
            Else
                ActiveWindow.FreezePanes = False
                ws.Range("A2").Select
                ActiveWindow.FreezePanes = True
                logMsg = logMsg & ws.Name & ": 固定を復元(A2基準)" & vbCrLf
            End If
        End If
    Next ws
    
    currentSheet.Activate
    Application.ScreenUpdating = True
    Debug.Print logMsg
End Sub

動作確認環境Excel 365(Windows版ビルド16.0.19530およびビルド16.0.18827)、Excel 2021で正常動作を確認。このコードは

ThisWorkbook

モジュールに記述する必要があります。標準モジュールに書いても

Workbook_Open

イベントは発火しません。ログは

Debug.Print

でVBAのイミディエイトウィンドウに出力されるため、確認するには

Ctrl + G

でイミディエイトウィンドウを開いてください。

実運用での注意このマクロはブックを開くたびに実行されるため、大量のシートがある場合は起動が数秒遅くなります。30シート程度であれば体感できるほどの遅延はありませんが、100シートを超えるブックでは

Application.Calculation = xlCalculationManual

をループの前に追加し、ループ後に

xlCalculationAutomatic

に戻すことでパフォーマンスが改善します。

VBA4固定状態を監視して外れたら即座に通知するマクロ

「誰が固定を外したのかわからない」という問題に対応するため、シートの切り替え時に固定状態をチェックして警告を出すマクロです。共有ブックでの運用に特に有効です。

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    If TypeName(Sh) = "Worksheet" Then
        If Not ActiveWindow.FreezePanes Then
            Dim result As VbMsgBoxResult
            result = MsgBox("シート「" & Sh.Name & "」のウィンドウ枠の固定が解除されています。" & vbCrLf & _
                "1行目を固定しますか?", vbYesNo + vbQuestion, "固定チェック")
            If result = vbYes Then
                ActiveWindow.FreezePanes = False
                Sh.Range("A2").Select
                ActiveWindow.FreezePanes = True
            End If
        End If
    End If
End Sub

動作確認環境Excel 2019、Excel 2021、Excel 365(ビルド16.0.19530)で動作確認済み。Excel 2016でも基本動作しますが、

SheetActivate

イベントの発火タイミングがビルドによって微妙に異なるため、特にExcel 2016のSA(Semi-Annual)チャネルの古いビルドでは正常に動作しない場合があります。Excel 2016を使用している場合はCurrent Channelの最新ビルドに更新することを強く推奨します。

Mac版Excelでの固定トラブルと専用の対処法

Mac版Excelは、Windows版と比べてウィンドウ枠の固定に関するバグが多い傾向があります。特に情シスとして対応が多かったのは、macOS Sonoma以降でウィンドウ枠の固定後にスクロールすると固定領域の列がスライドしてしまうという問題です。これはMicrosoftコミュニティでも多数報告されており、macOS側のレンダリング処理との相性問題とされています。

Mac版特有の対処法として、まずExcelを完全に終了してから再起動することで一時的に解消することがあります。それでもダメな場合は、Excelの環境設定(Preferences)から「表示」に関連する設定をリセットしてみてください。さらに、前述のVBAコードをMac版で使用する際、ウィンドウ名の区切り文字がWindows版と異なることがあります。Windows版のExcel 365ではウィンドウ名が

ブック名 - 1

の形式(ハイフン区切り)ですが、Mac版やExcel 2010では

ブック名:1

(コロン区切り)になる場合があります。VBAコード内でウィンドウ名を参照している箇所がある場合は、この違いに注意してください。

Excelのアドインが原因で固定が外れるケースの調査方法

見落とされがちですが、Excelにインストールされているアドインがウィンドウ枠の固定に悪影響を及ぼすケースがあります。実際に経験した事例では、Oracle SmartViewアドインやAdobe PDFMakerアドインが有効になっている環境で、ページダウンキーを使ったスクロール時にフリーズペインの挙動がおかしくなるという報告がありました。

アドインが原因かどうかを切り分けるには、Excelをセーフモードで起動するのが最も手っ取り早い方法です。Windowsのスタートメニューの検索欄に

excel /safe

と入力してEnterを押すと、すべてのアドインが無効な状態でExcelが起動します。この状態でファイルを開いてウィンドウ枠の固定が正常に動作するなら、アドインが原因です。

セーフモードで問題が解消された場合は、次にどのアドインが原因かを特定します。「ファイル」→「オプション」→「アドイン」から、有効なアドインを1つずつ無効にしてExcelを再起動し、問題が再現しなくなるまで繰り返してください。地道な作業ですが、原因のアドインを特定できれば根本解決になります。

xlsb形式の落とし穴と推奨ファイル形式

ファイルサイズを小さくするために

.xlsb

(Excelバイナリブック)形式を使っている方も多いと思います。パフォーマンスの面では優れた形式ですが、xlsb形式ではウィンドウ枠の固定に関する設定が正常に保存されないケースがまれに発生します。これはxlsb形式のファイル構造が通常のxlsx(ZIP+XML)とは異なるバイナリ形式であるため、一部のメタデータの扱いに差異があることに起因していると考えられます。

固定が繰り返し外れるファイルがxlsb形式の場合、一度

.xlsx

形式に「名前を付けて保存」し直すことで解決するケースがあります。ファイルサイズが大きくなるのが気になる場合は、不要なシートやデータを削除してからxlsx形式に変換することで、サイズの増加を最小限に抑えられます。

情シスの立場からファイル形式の推奨順位を整理すると、通常業務では

.xlsx

が最も安定、マクロが必要な場合は

.xlsm

、大容量データの場合のみ

.xlsb

を検討、という順番です。

.xls

(Excel97-2003形式)はシート当たりの最大行数が65,536行に制限されるうえ、ウィンドウ枠の固定を含む各種設定の互換性にも問題があるため、2026年の現在では使用を避けるべきです。

「条件付き書式」や「入力規則」が固定表示に悪影響を及ぼすメカニズム

直接的にウィンドウ枠の固定を解除するわけではありませんが、大量の条件付き書式やデータ入力規則が設定されたシートでは、固定後のスクロールが異常に重くなったり、描画がカクついて固定がズレたように見えることがあります。これは固定が「外れた」のではなく、Excelの描画処理が追いつかずに一時的に固定領域の表示が乱れている状態です。

対処法として最も効果的なのは、不要な条件付き書式を削除することです。「ホーム」タブ→「条件付き書式」→「ルールの管理」を開くと、シート内のすべてのルールが一覧で表示されます。古いルールが何百個も残っていることが意外と多く、これを整理するだけで描画パフォーマンスが劇的に改善します。特に、行や列を挿入・削除するたびにExcelが自動的にルールの参照範囲を分割するため、知らないうちにルールが膨大に増殖していることがよくあります。

データ入力規則も同様に、使っていないセル範囲に大量の入力規則が残っているとパフォーマンスに影響します。「データ」タブ→「データの入力規則」から不要な規則を確認・削除してください。

スクロールロックキーの罠

これは「固定が外れた」とはまったく異なる現象ですが、情シスへの問い合わせとして非常に多いので触れておきます。キーボードのScroll Lockキーがオンになっていると、矢印キーを押したときにセルではなく画面全体がスクロールする動作に変わります。この状態だと、固定されているはずの領域が動いているように見えるため、「固定が外れた」と勘違いするユーザーが後を絶ちません。

Scroll Lockがオンかどうかは、Excelのステータスバー(画面最下部)に「ScrollLock」と表示されているかで確認できます。表示されていればオンの状態なので、キーボードのScroll Lockキーを押して解除してください。ノートPCの場合はScroll Lock専用キーがないことが多く、

Fn

キーとの組み合わせが必要です。どのキーの組み合わせかはメーカーによって異なるので、「機種名 Scroll Lock 解除」で検索するのが確実です。

ウィンドウ枠の固定とSplitRow/SplitColumnの関係を理解する

VBAを扱う上級者向けの情報ですが、ウィンドウ枠の固定は内部的には

ActiveWindow.SplitRow

ActiveWindow.SplitColumn

の値をもとに

FreezePanes

プロパティを

True

にするという仕組みで動いています。つまり、固定と分割は同じ「Split」メカニズムの上に成り立っているのです。

このため、VBAで固定を設定する際に

SplitRow

SplitColumn

を直接指定してから

FreezePanes = True

とする方法も使えます。セルを

Select

せずに固定位置を指定できるため、画面のチラつきを最小限に抑えたい場合に有効です。

Sub FreezeUsingSplit()
    With ActiveWindow
        .FreezePanes = False
        .SplitRow = 3
        .SplitColumn = 2
        .FreezePanes = True
    End With
End Sub

このコードは3行目とB列を固定します。

SplitRow = 3

は「上から3行目までを固定」、

SplitColumn = 2

は「左から2列目までを固定」という意味です。動作確認環境Excel 2016、2019、2021、365(Windows版)全バージョンで正常動作。ただし、

FreezePanes = False

を先に実行せずに

SplitRow

SplitColumn

を変更すると、固定ではなく分割の状態になることがあるため、必ず一度

False

にしてから設定してください。

ネットワークドライブ上のファイルで固定が消える問題

SharePointやOneDriveだけでなく、社内のファイルサーバー(NAS)上に保存されたExcelファイルでもウィンドウ枠の固定が保存されない現象を経験したことがあります。原因として考えられるのは、ネットワーク越しの保存処理でタイムアウトが発生し、ファイルが完全に保存されなかったケースです。

この問題の解決策は意外とシンプルで、ファイルをローカルのCドライブやデスクトップにコピーしてから編集・保存し、完了後にネットワークドライブに戻すという運用です。「面倒くさい」と思われるかもしれませんが、ネットワーク越しの保存は固定設定だけでなく、ファイル破損のリスクも高いため、情シスとしてはこの方法を強く推奨します。

どうしてもネットワークドライブ上で直接編集したい場合は、保存後にファイルのプロパティから「サイズ」と「更新日時」が正しく変わっているか確認する癖をつけましょう。サイズが変わっていなかったり更新日時が古いままだったりする場合は、保存に失敗している可能性が高いです。

Windows 11の固定キー機能との混同に要注意

Excelの「ウィンドウ枠の固定」とWindows 11の「固定キー機能」は名前こそ似ていますが、まったく別物です。固定キー機能はShift、Ctrl、Alt、Windowsキーを押した状態を保持するアクセシビリティ機能で、Shiftキーを5回連打すると有効になります。

この機能が意図せず有効になると、ExcelでShiftキーを使ったショートカット操作がすべておかしくなり、「何かの操作が勝手に発動している」と感じて「固定が外れた」と誤認するケースがあります。タスクバーの右端に見慣れないアイコンが表示されていたら、固定キー機能が有効になっている可能性があるので、設定アプリの「アクセシビリティ」→「キーボード」から確認してオフにしてください。

ぶっちゃけこうした方がいい!

ここまで読んでくださった方は、ウィンドウ枠の固定ひとつ取っても原因も対処法も山のようにあることがわかったと思います。でも、情シスとして10年以上この手のトラブル対応をしてきた個人的な結論を正直に言わせてもらうと、ウィンドウ枠の固定に人生の時間を費やすのは、ぶっちゃけもったいないです。

なぜかというと、ウィンドウ枠の固定は所詮「画面表示の設定」に過ぎないからです。データそのものには一切影響しないし、外れたところで5秒で再設定できます。なのに、なぜこの問題がこんなにストレスになるかというと、毎回外れるたびに「再設定する」という小さなイライラが積み重なるからなんですよね。人間は「理由なく元に戻される」という体験にものすごくストレスを感じる生き物なので、気持ちは痛いほどわかります。

だから、僕が現場で実際に推奨しているのはこの方法です。固定が繰り返し外れるファイルには、さっさとVBAの自動復元マクロを入れてxlsm形式で保存してしまう。これだけで、毎回手動で再設定するストレスから完全に解放されます。この記事で紹介したVBA3のコードをコピーして

ThisWorkbook

に貼り付けるだけなので、VBA初心者でも5分でできます。一度設定してしまえば、あとはファイルを開くたびに自動で固定されるので、「外れた」という概念そのものがなくなるわけです。

それと、もうひとつぶっちゃけると、そのExcelファイル、本当にそのまま使い続ける必要がありますか?長年使い回されてきた巨大なExcelファイルは、目に見えない内部破損がどんどん溜まっていきます。固定が外れるのもその症状のひとつに過ぎません。根本的に解決したいなら、年に1回でいいので新しいブックにデータだけを移行する「ファイルのリフレッシュ」をおすすめします。新しいブックにデータを値貼り付けして、書式も固定も最初から設定し直す。これだけでファイルの挙動が見違えるように安定します。

最後に、共同編集環境で固定が外れるのが本当にストレスなら、テーブル機能の見出し固定やシートビュー機能を使うことも検討してみてください。ウィンドウ枠の固定だけが見出しを表示する唯一の手段ではありません。Excelは便利な道具ですが、ひとつの機能に固執するよりも、同じ目的を達成できる別のアプローチを知っておくほうが、長い目で見れば圧倒的に効率的です。「固定が外れた、もう嫌だ」と思ったその瞬間こそ、Excelとの付き合い方を一歩レベルアップさせるチャンスだと思って、ぜひこの記事の内容を試してみてください。

このサイトをチップで応援

Excelの行列固定が勝手に外れることに関するよくある質問

固定を設定しても保存されないのはなぜですか?

もっとも多い原因は、ファイルがCSVやHTML形式で保存されていることです。ウィンドウ枠の固定はExcel形式(

.xlsx

.xlsm

)でのみ保持されます。また、SharePoint上のファイルでは共同編集の影響で固定が保存されないバグが報告されています。ファイル形式を確認し、それでも解決しなければVBAマクロで自動復元するのが確実な方法です。さらに、ブック内に自動実行されるマクロが存在し、固定設定を解除している可能性もあるため、VBAエディタでコードを確認してみてください。

ウィンドウ枠の固定がグレーアウトして選択できないのはどうすれば良いですか?

画面が「ページレイアウト」ビューになっている場合、ウィンドウ枠の固定はグレーアウトします。画面右下のアイコンを確認し、「標準」ビューに切り替えてください。また、セルの編集モード(セル内でカーソルが点滅している状態)中も固定操作はできません。

Esc

キーか

Enter

キーを押して編集モードを終了してから操作しましょう。ブックの保護が有効になっている場合も同様にグレーアウトしますので、校閲タブから保護を解除してください。

行と列を同時に固定するにはどうすれば良いですか?

行と列を同時に固定するには、固定したい行の1つ下かつ列の1つ右のセルを選択してから「ウィンドウ枠の固定」をクリックします。たとえば、1行目とA列を同時に固定したい場合はセルB2を選択してから操作します。3行目までとC列までを固定したい場合はセルD4を選択します。「先頭行の固定」や「先頭列の固定」ではどちらか一方しか固定できないので、両方固定したいときは必ず「ウィンドウ枠の固定」を使いましょう。

Mac版Excelでもウィンドウ枠の固定は同じように使えますか?

基本的な操作方法はWindows版と同じです。表示タブから「ウィンドウ枠の固定」を選択して設定できます。ただし、Mac版のExcelではごくまれに固定の表示がずれるという報告もあります。macOSのバージョンとExcelのバージョンの組み合わせによっては予期しない動作が起きることがあるため、Excelを最新版にアップデートしておくことをおすすめします。

今すぐパソコンやスマホの悩みを解決したい!どうしたらいい?

LINE公式

いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良…もうイライラしない!」

あなたはこんな経験はありませんか?

✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦

平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。

LINEでメッセージを送れば即時解決!

すでに多くの方が私の公式LINEからお悩みを解決しています。

最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。

誰でも無料で使えますので、安心して使えます。

問題は先のばしにするほど深刻化します。

小さなエラーがデータ消失重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。

あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。

相談しに行く

ぜひ、あなたの悩みを私に解決させてください。

まとめ

Excelの行列固定が勝手に外れる原因は、ファイル形式の問題、マクロの干渉、SharePointの共同編集バグ、分割機能との混同、ページレイアウトビュー、ブックの保護、そしてファイルの破損と、実に多岐にわたります。まずは「一度固定を解除してから再設定する」というリセット操作を試し、それでも解決しなければファイル形式の確認、VBAコードのチェック、保護設定の見直しと順番に原因を切り分けていきましょう。

共同編集環境で繰り返し外れてしまう場合は、シートビュー機能の活用やVBAマクロによる自動復元が実用的な解決策になります。2026年のExcelはAI機能や新しいUI要素が次々と追加されていますが、ウィンドウ枠の固定という基本機能の安定性はまだ改善の余地があるのが現状です。この記事で紹介した対処法をひとつずつ試していけば、ほとんどのケースで固定が外れるストレスから解放されるはずです。今日から快適なExcel作業を取り戻してください。

この記事を書いた人
この記事を書いた人

企業の情報システム部門で10年以上、PC・アカウント・社内ネットワーク・Microsoft 365/Google Workspace運用を担当。年間数百件の問い合わせ対応(PC不調、メール送受信、Excel/Word資料、Teams会議、スマホ連携など)を通じて、初心者がつまずくポイントを「再現→原因切り分け→最短解決」の手順に落とし込んできました

現場や身近で実際に起きたトラブルをベースに、手順だけでなく「なぜそうなるか」「失敗しやすい落とし穴」「安全な設定(セキュリティ)」まで含めて解説します。

相談窓口(問い合わせ/LINE等)を設け、記事で解決しないケースも個別にサポートしていますので「パソコンが急に動かなくなった」「スマホの設定がわからない」などの悩みは一人で抱え込まず、お気軽にご相談ください。

【お問い合わせは下記URLから】
https://m32006400n.xsrv.jp/inquiry-form/

【公式LINEは下記URLから】
https://lin.ee/t8TDjcj

uri uriをフォローする
スポンサーリンク
よかったらシェアしてね! /
uri uriをフォローする

コメント

タイトルとURLをコピーしました