Excelで行を固定する方法: 実際に機能する5つの方法
Iron Softwareのチームによって書かれました
長いスプレッドシートをスクロールしてどの列がどの列かを見失った経験があれば、既にその問題を知っています。 Excelで行を固定または"固定"すると、ヘッダ行が所定の位置に保持され、他のすべてが自由にスクロールされます。 この固定機能は、大きなスプレッドシートをより効率的に管理するために、スクロールしながら重要なデータを表示し続けるためにExcelで重要な機能です。
最速の方法は、行2の任意のセルをクリックし、表示 → ウィンドウ枠固定 → 最上行を固定に進むことです。 完了。 行1が固定されました。 これで、スクロールしているデータでヘッダが目に見えるままになります。
その短い答えがそれです。 ただし、Excelのバージョン、特定のレイアウト、または複数の行を固定する必要があるかどうかによって、もう少し細かいニュアンスがあります。 このガイドでは、基本チュートリアルで常に省略される境界ケースと、ワンクリックのリボンアプローチからキーボードショートカット、VBAマクロまですべての方法をカバーしています。***
目次
- Excelで行を固定することの実際の意味
- 方法1:最上行の固定 (リボン — 最速)
- 方法2:複数行を一度に固定
- 方法3:ウィンドウ枠固定のキーボードショートカット
- 方法4:行と列を同時に固定
- 方法5:行を自動的に固定するためのVBAマクロ
- Excelで行を解除する方法
- 一般的な問題とトラブルシューティング
- 開発者向け: IronXLでプログラムによって行を固定***
Excelで行を固定することの実際の意味
Excelのメニューでは、固定機能はウィンドウ枠固定という名前で知られています。 この機能を使用すると、ワークシートの特定の行を上部に固定したままにすることができます。 これらの2つの用語は、日常会話では同じ意味を持っています。スクロールしても表示され続けるように行(または複数の行)をロックすることです。
行が固定されると、薄い暗い線がその下に表示され、固定された部分とスクロール可能な領域とを分けます。 固定された行は、スプレッドシートを移動しているときも常に表示され続け、画面の上部に表示されます。どれだけ下にスクロールしても。
大きなスプレッドシートを管理しやすくするために、重要な情報を固定するために特定の行を固定することができます。
クイックヒント: 固定はナビゲーションにのみ影響する表示設定です。 データ、数式、印刷出力はそのままの状態を維持します。***
方法1:最上行の固定 (リボン — 最速)
90%の時間この方法が必要です。ヘッダーが行1にある場合、これはワンクリックです。
ステップ:
- Excelでスプレッドシートを開きます。
-
上部のリボンの表示タブを選択します。
-
ウィンドウグループでウィンドウ枠固定ボタンをクリックします。
- ウィンドウ枠固定のドロップダウンから最上行を固定を選択します。
以上です。 薄い線が行1の下に表示され、スクロールしてもそれは動きません。 この方法では、上部に表示し続けたい行を固定します。
注: ウィンドウ枠固定ボタンをクリックする前に行2の任意のセルを選択すると、Excelは行1を固定します。
この方法が機能するのは: 行1に列のヘッダーがある人です。これは標準スプレッドシート構成の大部分をカバーします。
この方法が機能しないのは: ヘッダーが行3または行4から始まっている場合(なぜなら、上に会社のロゴやタイトルブロックがあるため)、この方法では間違った行を固定します。 その場合は、以下の方法2を使用してください。

方法2:複数行を一度に固定
最初の3行をロックしますか? または、ヘッダブロックを行1–5に固定しますか? Excelはこれをクリーンに処理し、一度に複数の行を固定することができます。複数の行と列を一緒に固定したい場合、Excelのウィンドウ枠固定機能を同時に使用して固定することができます。 クイックヒント:複数の行または列を固定するには、常に最後の行または列のすぐ下と右にあるセルを選択する必要があります。
ルール: 固定したくない最初の行をクリックします。 Excelはあなたの選択の上にあるすべてをロックします。
ステップ:
- スクロール自由にすべき行番号(または任意のセル)をクリックします。 複数の行を固定するには、固定したい最後の行の下の行を選択します。
- 例: 行1–3を固定するには、行4の任意の場所をクリックします。
- 表示 → ウィンドウ枠固定 → ウィンドウ枠固定に進みます(リストの最初のオプションで、"最上行を固定"ではない)。
選択した行の上にあるすべての行が現在固定されています。

注: 複数の行を固定するには、固定したい行の下の行番号をクリックしてから表示タブにナビゲートし、ウィンドウ枠固定を選択してください。 間違ったセクションを固定されないように正しい行を選択することを確認してください。 いくつかのヒントがあります: スクリプトを適用する前に選択を二重確認し、適切なセルを選択して行または列を一緒に固定することができることを覚えておいてください。 これにより重要なデータを目に見える状態に保ち、ワークフローを改善します。
重要な違い: "最上行を固定"は常に行1を固定します。カーソルがどこにあるかに関係なく。 "ウィンドウ枠固定"は、現在の選択の上にあるすべてを固定します。 迷ったら、"ウィンドウ枠固定"を使用してください。***
方法3:ウィンドウ枠固定のキーボードショートカット
Excelでは、行を固定するための信頼性の高いキーシーケンスがあり、マウスに触れることなく目的地に到達できます。 以下の手順に注意深く従い、正しい行が固定されていることを確認してください。
ショートカットシーケンス(Windows):
Alt → W → F → F
Alt → W → F → F
Alt → W → F → F
各キーを順に押してください(一度に押さないでください):
- Alt — リボンキーボードナビゲーションをアクティブにします
- W — 表示タブを開きます
- F — ウィンドウ枠固定メニューを開きます
- F — "ウィンドウ枠固定"を選択します
特に最上行を固定の場合:
Alt → W → F → R
Alt → W → F → R
Alt → W → F → R
特に最初の列を固定の場合:
Alt → W → F → C
Alt → W → F → C
Alt → W → F → C

Macユーザー: Macには同等のAltキーショートカットはありません。 最も近いアプローチはメニューを使用することです: 表示 → 行と列を固定(Mac Excelは異なる用語を使用しますが、同様に機能します)。 また、システム設定 → キーボード → キーボードショートカット → アプリショートカットを介してカスタムキーボードショートカットを設定することもできます。***
方法4:行と列を同時に固定
時には、ヘッダー行だけでなく、一番左の列(従業員IDやアカウント番号のようなもの)を固定して、両方向にスクロールする際に表示され続ける必要があります。 特に行と列を一緒に固定したい場合に、この方法が役立ちます。 Excelはこれを1回の操作で処理します。
ステップ:
- 固定したい最後の行のすぐ下と、固定したい最後の列の右側のセルを選択します。 これは複数の行と列のウィンドウ枠を固定する方法です。
- 例: 行1と列Aを固定するには、セルB2をクリックします。
- 行1–2と列A–Bを固定するには、セルC3をクリックします。
- 表示 → ウィンドウ枠固定 → ウィンドウ枠固定に進みます。
Excelは選択したセルの上と左のすべてを固定し、これらの行と列を固定および表示状態に維持します。 2つの固定線が表示されます。1つは水平、もう1つは垂直です。
注: 代替案として、パネル分割を使用して、ワークシートの異なる部分を同時に表示することができます。パネル分割により、独立してスクロールできる別々のウィンドウセクションが作成されます。
実用的なユースケース: 財務モデル、在庫シート、プロジェクトトラッカーはこれの恩恵を受けることが多いです。 列A(名前やID)と行1(ヘッダー)を固定することで、右または下にスクロールしても何を見ているのかを推測する必要がありません。***
方法5:行を自動的に固定するためのVBAマクロ
複数のスプレッドシートを管理している場合、ファイルが開くたびに固定設定を自動的に適用したい場合は、単純なVBAマクロでそれを管理できます。 特に同僚にワークブックを配布して、ビュー設定を組み込みたい場合に役立ちます。
この設定を行う方法:
- Alt + F11を押してVBAエディタを開きます。
左側のパネルで、ThisWorkbook(ファイル名の下)をダブルクリックします。
- 次のコードを貼り付けます。
Private Sub Workbook_Open()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Activate
ws.Rows("2:2").Select
ActiveWindow.FreezePanes = True
Next ws
ThisWorkbook.Worksheets(1).Activate
End Sub
Private Sub Workbook_Open()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Activate
ws.Rows("2:2").Select
ActiveWindow.FreezePanes = True
Next ws
ThisWorkbook.Worksheets(1).Activate
End Sub
Option Strict On
Private Sub Workbook_Open()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Activate()
ws.Rows("2:2").Select()
ActiveWindow.FreezePanes = True
Next ws
ThisWorkbook.Worksheets(1).Activate()
End Sub
- VBAエディタを閉じ、ファイルを.XLSM(マクロ有効ワークブック)として保存します。
このマクロは、ワークブックを開くたびに自動的に実行され、すべてのシートの行1を固定します。
特定の行のみ(すべてのシートではなく)を固定するには:
Sub FreezeRow()
Sheets("Sheet1").Activate
ActiveSheet.Rows("2:2").Select
ActiveWindow.FreezePanes = True
End Sub
Sub FreezeRow()
Sheets("Sheet1").Activate
ActiveSheet.Rows("2:2").Select
ActiveWindow.FreezePanes = True
End Sub
Sub FreezeRow()
Sheets("Sheet1").Activate()
ActiveSheet.Rows("2:2").Select()
ActiveWindow.FreezePanes = True
End Sub
Alt + F8 → "FreezeRow"を選択 → 実行経由で手動で実行します。
注: マクロは、.XLSM形式で保存する必要があり、組織の設定によってはセキュリティ警告をトリガーする場合があります。 会社がマクロを無効にしている場合は、方法1〜4のままにしてください。
より高度な自動化が必要か、VBAに問題がある場合は、Excelの専門家に相談して個別に支援やトラブルシューティングを依頼することを検討してください。***
Excelで行を解除する方法
固定された行を削除するには、表示タブに進み、ウィンドウ枠固定ボタンをクリックし、ウィンドウ枠を解除選択します。
解除は固定よりも簡単です。 どれだけ多くの行や列を固定しているかに関係なく:
- 表示 → ウィンドウ枠固定に進みます。
-
最初のオプションは現在ウィンドウ枠を解除と表示されます(何かがすでに固定されている場合、"ウィンドウ枠を解除"が"ウィンドウ枠固定"を置き換えます)。
- それをクリックします。 すべてが瞬時に解除されます。
解除するためのキーボードショートカット: Alt → W → F → F(固定と同様 — Excelは現在の状態に基づいて切り替えます)。***
よくある問題とトラブルシューティング
"最上行を固定"がグレーアウトされている
これはほぼ常に2つのことのいずれかを意味します:
- セル編集モードです。 最初にEscapeを押してから再試行してください。
- ワークブックが保護されている。 校閲 → シートの保護解除に進みます(パスワードが設定されている場合は必要)。 固定設定は保護されたシートでは変更できません。
-
- *
フリーズラインが誤った場所に現れる
これは、"最上行を固定"ではなく"ウィンドウ枠固定"を使用し、カーソルが予期しない位置にあるときに発生します。 解決策: すべてのウィンドウ枠を解除し、再適用する前に正しいセルを慎重に選択してください。***
固定された行は印刷されず、ヘッダーがページ2以降で消える
ウィンドウ枠固定と印刷中にヘッダーを繰り返すことは2つの別個の機能です。 固定は画面にのみ影響を与えます。 印刷中に毎ページで行を繰り返すには:
- ページレイアウト → 印刷タイトルに進みます。
-
"上部に繰り返す行"ボックスをクリックします。
- スプレッドシートの行番号をクリックします。
- OKをクリックします。***
ソートまたはフィルタリング中に固定線が移動する
そうではないはずです。ウィンドウ枠は行/列の位置に固定されていて、特定のセルコンテンツには固定されていません。 移動したように見える場合、最も可能性の高い原因は、異なる位置で解除して再固定したことです。 固定を解除し、データをソートしてから固定を再適用してください。
固定線は表示されるが、行はまだスクロールします
分割を使用しているかどうかを確認してください。固定ではなく。 表示タブには両方のオプションがあり、見た目は似ています。 分割は独立してスクロール可能な2つのペインを作成し、分割の上の行はまだ移動できます。 表示 → 分割をクリックしてそれをオフにし、代わりにウィンドウ枠固定を使用してください。***
Excel Online / Microsoft 365 webバージョン
Excelのwebバージョンはウィンドウ枠固定をサポートしていますが、メニューの場所がわずかに異なります。 強調するクラウドの小さな変化を見つけるには、表示 → 行と列を固定(または表示 → ウィンドウ枠固定)を参照してください。 ブラウザバージョンではすべてのキーボードショートカットが動作するわけではありません。***
開発者向け: IronXLでプログラムによって行を固定
.NETアプリケーションを構築し、Excelファイル、レポート、エクスポート、ダッシュボードを自動的に生成し、手動で設定することなくウィンドウ枠固定を適用する場合、IronXLはこれを簡単にします。
IronXLはC# Excelライブラリで、Microsoft OfficeをサーバーにインストールせずにExcelファイルを作成、読み取り、変更することができます。 ウィンドウ枠固定設定はワークシートレベルで適用され、"最上行を固定"や"ウィンドウ枠固定"などの固定機能が既に設定されているスプレッドシートを簡単に共有できます。
例: エクスポートされたレポートで最上行を固定
using IronXL;
// Load or create a workbook
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet sheet = workbook.DefaultWorkSheet;
// Add header row
sheet["A1"].Value = "Order ID";
sheet["B1"].Value = "Customer";
sheet["C1"].Value = "Amount";
sheet["D1"].Value = "Date";
// Populate data rows
for (int i = 2; i < = 100; i++)
{
sheet[$"A{i}"].Value = i - 1;
sheet[$"B{i}"].Value = $"Customer {i - 1}";
sheet[$"C{i}"].Value = (i * 15.50).ToString("C");
}
// Freeze the top row so headers stay visible when scrolling
sheet.CreateFreezePane(0, 1); // column split = 0, row split = 1
// Save the file
workbook.SaveAs("OrderReport.xlsx");
using IronXL;
// Load or create a workbook
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet sheet = workbook.DefaultWorkSheet;
// Add header row
sheet["A1"].Value = "Order ID";
sheet["B1"].Value = "Customer";
sheet["C1"].Value = "Amount";
sheet["D1"].Value = "Date";
// Populate data rows
for (int i = 2; i < = 100; i++)
{
sheet[$"A{i}"].Value = i - 1;
sheet[$"B{i}"].Value = $"Customer {i - 1}";
sheet[$"C{i}"].Value = (i * 15.50).ToString("C");
}
// Freeze the top row so headers stay visible when scrolling
sheet.CreateFreezePane(0, 1); // column split = 0, row split = 1
// Save the file
workbook.SaveAs("OrderReport.xlsx");
Imports IronXL
' Load or create a workbook
Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
' Add header row
sheet("A1").Value = "Order ID"
sheet("B1").Value = "Customer"
sheet("C1").Value = "Amount"
sheet("D1").Value = "Date"
' Populate data rows
For i As Integer = 2 To 100
sheet($"A{i}").Value = i - 1
sheet($"B{i}").Value = $"Customer {i - 1}"
sheet($"C{i}").Value = (i * 15.5).ToString("C")
Next
' Freeze the top row so headers stay visible when scrolling
sheet.CreateFreezePane(0, 1) ' column split = 0, row split = 1
' Save the file
workbook.SaveAs("OrderReport.xlsx")
CreateFreezePane(colSplit, rowSplit)メソッドは、左から固定する列数と上から固定する行数の2つのパラメータを取ります。ヘッダー行のみを固定する場合、(0, 1)を渡します。 ヘッダー行と最初の列の両方を固定するには、(1, 1)を渡します。
結果として得られるファイルは、Excelで既に設定された状態で開きます。ユーザーがそれを自分で設定する必要はなく、特に非技術的なステークホルダーにレポートを配布する際に役立ちます。
IronXLをさらに探索したいですか? それは、セルのフォーマットと数式からグラフ、パスワード保護、.XLSX、.XLS、.CSVなどの形式間のファイル形式の変換までを処理します。 IronXLウェブサイトで完全なドキュメントと無料トライアルを見つけることができます。
より多くのリソースについては、IronXLサイトにアクセスしてガイドにアクセスし、質問をし、開発者コミュニティとソリューションを共有してください。 また、他のユーザーとつながり、ヒントを共有し、プロジェクトのサポートを受けるためにExcel開発者コミュニティに参加することをお勧めします。
まとめ: どの方法を使用すべきですか?
|状況|最適な方法| |---|---| |行1を固定(標準のヘッダ)|方法1 — リボンで最上行を固定| |行1–3または任意の複数行のヘッダを固定|方法2 — 行4をクリックし、次にウィンドウ枠固定| |キーボードから手を離さない|方法3 — Alt → W → F → R| |行と列を一緒に固定|方法4 — 下+右のセルをクリックし、次にウィンドウ枠固定| |配布されたワークブックで自動的に固定を適用|方法5 — VBAマクロ| |.NETアプリを構築し、Excelファイルをエクスポート|IronXL CreateFreezePane()|
ウィンドウ枠固定は、使用するまでは目に見えない機能の一つですが、一度使用すると、戻るのが難しくなります。 リボンの方法(方法1)はほとんどの日常的な状況に対応し、方法2はより複雑なものに対応します。 このガイドのその他の内容は、特異なケースや上級ユーザー向けです。
どの方法を使用するべきか疑問に思った場合は、このガイドで提供されているヒントを考慮してください。ウィンドウ枠の固定を慎重に行うことが、一般的な落とし穴を避ける手助けになります。 ヒント:多くの行を凍結すると、特に小さな画面で作業するための見える範囲が制限される可能性があります。




