Article

【Excel】「すべての結合セルを同じサイズにする必要があります」並べ替えエラーの原因と5つの対処法

この記事で分かること

Excelの並べ替えで「すべての結合セルを同じサイズにする必要があります」と表示される原因と、結合解除・「選択範囲内で中央」・テーブル化・VBA一括解除の5つの対処法を実機画像で解説します。

Excelでデータを並べ替えようとして、エラーメッセージ「すべての結合セルを同じサイズにする必要があります。」が出る場合、原因はほぼ1つだけです。並べ替え範囲のなかに、ほかと違うサイズの結合セルが混ざっていることが原因です。実機での完全な文言は§1の画像で確認できます。

この記事では、エラーの正確な発生条件を実機で再現したうえで、結合をすべて解除する/「選択範囲内で中央」に置き換える/結合のサイズを統一する/テーブル化して再発を防ぐ/VBAで一括解除するの5つの対処法を、画面のラベルどおりに図解します。

結論を先に書くと、業務でもっとも安全で早い解決は「並べ替え範囲の結合セルをすべて解除する」です。最短手順は §5 にあります。

この記事で使うサンプル: 書籍カタログのデータ(A列「書籍番号」、B列「書名」、C列「発刊日」、D列「金額」)を題材にします。D3:D4(金額の2700)とC5:C6(発刊日の2014/10/27)がそれぞれ縦結合されている状態で並べ替えを実行すると、必ずこのエラーが出ます。

1. 「すべての結合セルを同じサイズにする必要があります」とは

結合セルを含む範囲を並べ替えようとすると、Excelは下のダイアログを出して並べ替えを中止します。

Excelの並べ替えで表示されるエラーダイアログ。タイトルはMicrosoft Excelで、本文に結合セルのサイズが揃っていない旨のメッセージが入っている

キャプション: 並べ替え(昇順)を実行した直後のダイアログ。タイトルはMicrosoft Excel、本文は画像のとおり「すべての結合セルを同じサイズにする必要があります。」を含む文言で、末尾には句点が付きます。ボタンはOK(O)のみで、警告アイコン(黄色の三角形)が表示されます。

このエラーの正体は、Excelの並べ替えロジックが、結合セルとそれ以外のセルを同じ「1まとまり」として扱えないことに起因します。並べ替え範囲に結合セルが含まれていても、結合セルとそれ以外のセル構造がすべて同じサイズ(たとえば全行が2行×1列の結合)に統一されていれば、エラーは出ません。混在することが問題です。

2. このエラーが出る操作と、出ない操作

このエラー本文(9115)が出るのは、おもに並べ替え系の操作のときだけです。フィルターやコピペで何か警告が出た場合、別文言のメッセージか、そもそも何の表示もない場合があります。

操作9115のエラーが出るか備考
データタブ →(昇順/降順)並べ替え出る本記事の主題
並べ替えダイアログから複数キーで並べ替え出る同上
オートフィルターをONにするだけ出ない表示そのものは崩れない
オートフィルターで抽出条件を設定出ない結合セルを含む列を条件にすると表示が崩れる(§11で詳述)
セルをコピーして結合領域に貼り付け別文言「この操作は結合したセルには行えません。」(貼り付け範囲の形状次第)
結合領域に行を挿入/削除条件次第9115ではなく別ダイアログまたは無反応
Ctrl+Tでテーブル化出ない結合がそのまま静かに解除される(§8)

「フィルターやコピペでもエラーが出る」と書いている解説がありますが、出るエラーの文言が違います。本記事は並べ替えで出る9115(「すべての結合セルを同じサイズにする必要があります。」)に絞って解説します。

3. エラーが出る正確な条件

並べ替えエラーの発生条件は、並べ替え範囲のなかに含まれるセル「ブロック」(結合領域と単独セル)が全て同じサイズでないことです。「同じサイズの結合セルだけを使えば回避できる」とは限らない点に注意してください。

実機で確認した発生/非発生の典型例です。

並べ替え範囲のなか結果
結合がまったくない並べ替え成功
ヘッダー行も含めて全行・全列が同じサイズ(2行×1列など)の結合だけ並べ替え成功
2行×1列の結合が1か所だけ、他は単独セルエラー
同じサイズ(2行×1列)の結合が2か所、他は単独セルエラー
横方向の結合(B2:C2 など)が1か所、他は単独セルエラー
並べ替えキーの列に結合が1か所、他は単独セルエラー
並べ替え範囲のに結合(F10:F12 など)、範囲内は無結合並べ替え成功

ここから読み取れる実務的な指針は2つです。

  1. 並べ替え範囲のなかの結合は、1か所でもあればエラーの原因になりやすい(単独セルとサイズが合わない)
  2. シート全体の結合を消す必要はなく、並べ替え範囲だけの結合を解除すれば十分

4. 結合セルがどこにあるかを最速で見つける

まず、どの行のどのセルが結合されているかを検索機能で一覧化します。クリックして探すより圧倒的に速いです。

  1. 結合がありそうなシートを開く
  2. Ctrl+Fを押して検索と置換ダイアログを開く
  3. 右下のオプション(T) >>を押してダイアログを広げる
  4. 検索する文字列(N)欄の右にあるプレビュー欄のさらに右に書式(M)...ボタンがあるので、これを押す
  5. 開いた書式の検索ダイアログで配置タブに切り替え、文字の制御セクションのセルを結合する(M)にチェックを入れてOK
  6. 検索ダイアログに戻ったら、検索する文字列(N)は空のまますべて検索(I)を押す

書式の検索ダイアログの配置タブはこの形です(実画像は結合済みセルD3:D4を選んでCtrl+1で開いたセルの書式設定ですが、UI構造は書式の検索と同じです)。

セルの書式設定ダイアログの配置タブ。文字の制御セクションでセルを結合するというチェックボックスにチェックが入っている。横位置は標準のまま

キャプション: 配置タブの文字の制御セクションにあるセルを結合する(M)にチェックを入れた状態。OKを押すと、検索条件に「結合セルだけを探す」が加わります。

検索と置換ダイアログのオプション展開状態。検索する文字列の右にプレビュー欄があり、末尾にアスタリスクが付いて書式フィルターが設定済みであることを示している

キャプション: 書式条件を設定して検索と置換ダイアログに戻ると、検索する文字列(N)欄の右にあるプレビュー欄の表示がプレビュー*に変わり、書式フィルターが有効になっていることが分かります。

検索結果ペインに、結合されているセルの先頭アドレス(たとえば$D$3$C$5)が一覧で並びます。あとはどれを残し、どれを解除するか判断してから、対処に進みます。

5. 対処1:並べ替え範囲の結合をすべて解除する(最短手順)

もっとも早い解決策で、業務上はこれで十分なことがほとんどです。手順は3ステップです。

  1. 並べ替えたい範囲(例:A1:D7)を選択する
  2. リボンのホームタブ →配置グループ →セルを結合して中央揃えボタンの右にあるセル結合の解除を選ぶ
  3. もう一度並べ替えを実行する

並べ替えでエラーが出る初期状態。A1:D7 の表が選択されており、金額列の D3:D4 と発刊日列の C5:C6 がそれぞれ縦結合されている

キャプション: 初期状態。A1:D7の表のなか、D3:D4(金額の2700)とC5:C6(発刊日の2014/10/27)が縦結合されています。この状態で並べ替えを実行すると§1のエラーになります。

結合解除後の状態。同じ A1:D7 の表で結合がすべて消えている。書籍番号は元から昇順なので並びは変わらない

キャプション: 結合解除後、もう一度並べ替えてもエラーは出ない状態。元のデータが書籍番号順だったため、行の並びそのものに変化はありません。

シート全体を解除する必要はありません。 並べ替えに使う範囲(上の例ではA1:D7)だけ選んで解除すれば足ります。範囲外の表に残した結合は並べ替えに影響しません。

6. 対処2:「選択範囲内で中央揃え」に置き換える(見た目を残す)

「結合をやめると見た目が崩れる」のが嫌な場合は、結合をやめて中央寄せの見た目だけ残す方法があります。「選択範囲内で中央」という配置設定です。

  1. 中央寄せにしたい範囲(例:A10:D10)を選択する。値は左端のセル(A10)にだけ入れておく
  2. Ctrl+1セルの書式設定ダイアログを開く
  3. 配置タブに切り替える
  4. 文字の配置横位置(H):のドロップダウンから選択範囲内で中央を選ぶ
  5. OKを押す

セルの書式設定ダイアログの配置タブ。横位置のドロップダウンが選択範囲内で中央になっている

キャプション: 横位置(H):選択範囲内で中央に設定。これは結合ではないので、セルを結合する(M)のチェックは入れません。

この設定を当てると、見た目は中央寄せ(複数列にまたがって中央に表示)になりますが、セルは結合されていません。並べ替え範囲に含めても§1のエラーにはなりません。

選択範囲内で中央を適用した行のデモ。A10 セルに 2026 年度・新刊カタログ 中央寄せ・結合なし という文字列が入っているが、A 列から D 列にまたがって中央寄せ表示されている

キャプション: A10セルにだけ文字列を入れてA10:D10の範囲に「選択範囲内で中央」を適用した例。値はA10だけにあるのに、A〜D列の中央に表示されます。

並べ替えに含めたときの動きに注意: 「選択範囲内で中央」を設定したセルを並べ替え対象に含めた場合、その書式は通常のセル書式と同じで行の移動に追従します。元の位置(たとえばB2)に書式が固定して残るわけではない点だけ覚えておいてください。

7. 対処3:結合セルのサイズを統一する(結合のまま並べ替える)

どうしても結合を残したい場合は、並べ替え範囲のなかの全セルを同じサイズの結合に揃えることで並べ替え可能にする方法があります。実例としてはヘッダー行(A1:A2B1:B2)も2行結合にし、データ行も2行ずつ結合するパターンです。

ただし、ヘッダーと本文の構造を完璧に揃える必要があるため、現実の業務データではほとんど採用されません。「理屈上は通る」程度に覚えておけば十分です。実用面では§5(結合解除)または§6(選択範囲内で中央)を選んでください。

8. 対処4:テーブル(Ctrl+T)に変換して再発を防ぐ

同じ表で何度も結合が混入して並べ替えが止まる場合は、表をテーブル化(Ctrl+T)しておくと再発を防ぎやすくなります。テーブル化には2段の予防効果があります。

1段目は既存の結合を自動で解除する動きです。結合が混在する範囲を選んでCtrl+Tを押すと、警告ダイアログは出ずに、そのままテーブルの作成ダイアログが開きます。

Ctrl+T を押したときに表示されるテーブルの作成ダイアログ。範囲は A1 から D7 で、先頭行をテーブルの見出しとして使用するというチェックボックスと OK・キャンセルボタンがある

キャプション: Ctrl+T直後のテーブルの作成ダイアログ。範囲は自動で$A$1:$D$7が入り、先頭行をテーブルの見出しとして使用する(M)のチェックは既定でオン。OKを押すと、もとの結合(D3:D4C5:C6)が静かに解除されてテーブルが作成されます。

2段目はテーブル化後の結合操作がブロックされる動きです。テーブル内のセルを選んでホームタブのセルを結合して中央揃えボタンを押しても、Excelは反応しません。ダイアログも出ず、結合もされず、ただ無視されます。VBAからRange.Mergeを呼び出した場合も実行時エラーになり、検証では HRESULT -2146827284 が返りました。

つまりテーブル化しておけば、「あとから誰かが結合してしまって並べ替えが止まる」事故を構造的に防げます。集計用の表はテーブル化しておくのがおすすめです。

9. 対処5:VBAで結合セルを一括解除する

大きな表で結合がたくさん点在している場合は、VBAでまとめて解除する方が早いです。アクティブシート全体を一括解除するコードはこちらです。

Sub UnmergeAllInSheet()
    On Error GoTo CleanUp
    Application.ScreenUpdating = False
    ActiveSheet.UsedRange.UnMerge

CleanUp:
    Application.ScreenUpdating = True
    If Err.Number <> 0 Then
        MsgBox "結合解除に失敗しました: " & Err.Description, vbExclamation
    End If
End Sub

使い方は、Alt+F11でVBE(Visual Basic Editor)を開き、左のプロジェクトウィンドウから対象のブックを右クリック →挿入標準モジュール → 開いたモジュールに上記コードを貼り付け →F5で実行、です。

ブック内のすべてのシートをまとめて処理したい場合はこちらに差し替えてください。

Sub UnmergeAllInBook()
    Dim ws As Worksheet
    On Error GoTo CleanUp
    Application.ScreenUpdating = False

    For Each ws In ActiveWorkbook.Worksheets
        If Not ws.ProtectContents Then ws.UsedRange.UnMerge
    Next ws

CleanUp:
    Application.ScreenUpdating = True
    If Err.Number <> 0 Then
        MsgBox "結合解除に失敗しました: " & Err.Description, vbExclamation
    End If
End Sub

保護されているシートはProtectContentsで除外しています。業務ブックでは、念のため実行前にバックアップを取ってから走らせてください。

10. 5つの対処法の使い分け早見表

状況別の選び方をまとめます。

状況選ぶ対処法理由
とにかく早く並べ替えたい§5 結合をすべて解除3ステップ。シート全体ではなく並べ替え範囲だけでOK
見た目(中央寄せ)を残したい§6 選択範囲内で中央結合しないが見た目は同じ。並べ替え可
どうしても結合を残したい§7 サイズを統一全行同じ結合構造に揃える。実用性は低い
同じ表で何度も結合が混入する§8 テーブル化既存結合を解除しつつ以降の結合操作も無効化
結合が大量にあって手作業がきつい§9 VBA一括解除ワンクリックで全シート対応

11. オートフィルターでも結合があると表示が崩れる

「9115のエラーは並べ替えで出る」と書きました。一方フィルターでもまったく問題ないわけではありません。エラー文言こそ出ないものの、抽出結果のほうが崩れます

カテゴリ列を A で抽出したフィルター結果。ステータスバーには 6 レコード中 1 個が見つかりましたと表示。表示行は row 2 のみで row 3 から row 7 までは非表示

キャプション: A列にカテゴリの結合(A2:A3=A、A4:A6=B)がある状態でフィルターを「A」で抽出すると、ステータスバーには「6 レコード中 1 個」と出ます。実際の可視行はrow 2のみで、row 3は同じ結合領域に含まれているものの非表示になります。

このように、結合セルを含む列を条件にしたフィルターでは、抽出結果が期待どおりに見えないことがあります。並べ替えやフィルターを使う表では、結合は解除するか、最初から使わない設計にしておくのが安全です。

12. よく似たエラーや警告との違い

結合セル関連のエラーや警告は何種類かあり、混同しやすいので整理しておきます。

本文出るタイミングhelpaso記事
この操作を行うには、すべての結合セルを同じサイズにする必要があります。並べ替え時(本記事)本記事
この操作によって、いくつかの結合されたセルが解除されます。続けてもよろしいですか?結合領域に貼り付け/挿入で結合が外れるときpost 9143
この操作は結合したセルには行えません。結合領域に形状の合わないコピーペーストをしたとき本記事§2の表で補足

関連して、結合セル自体を扱う記事もあわせて参考にしてください。

13. まとめ

「すべての結合セルを同じサイズにする必要があります。」のエラーは、並べ替え範囲のなかの結合セルが、まわりのセル(単独セルや別サイズの結合)とサイズが合っていないことが原因です。実機で再現できる動きをまとめます。

  • このエラー本文が出るのは並べ替え系の操作のとき。フィルターやコピペでは別文言になる
  • 解決の最短は並べ替え範囲の結合をすべて解除する(§5、シート全体は不要)
  • 見た目を残したい場合は選択範囲内で中央に置き換える(§6、結合せず中央寄せ)
  • 同じ表で再発する場合はテーブル化(Ctrl+T)。既存結合は静かに解除され、以降の結合操作もブロックされる
  • 大量に結合がある場合はVBAで一括解除(§9)

並べ替えやフィルターを使う前提があるなら、最初から結合を使わない設計の方が事故を減らせます。すでに結合だらけの表に困っている場合は、まず§4の検索で「どこに何個あるか」を可視化してから、§5〜§9のうち合うものを選んでください。

Next Read

このあと読む記事

今の内容に近い記事から、次の1本と補助記事を続けて見つけられるようにしています。

Keep Exploring

このテーマをさらに探す

同じテーマの入口記事と更新記事を、一覧の形でまとめています。

コメント