Amazonで商品を見るセール会場へ

Googleスプレッドシート│結合セルを一括で解除する方法|GAS

Googleスプレッドシートの結合セルは、対象範囲を選び「結合を解除」でまとめて解除します。

通常の解除では左上の値が残り、ほかのセルは空欄になります。

文字ラベルを各セルへ複製したい場合は、後半のGAS(Google Apps Script)の例を使います。

GASはGoogleサービスを操作するスクリプトです。

書き込みGASの実サービス上での実行は未確認なので、先に練習用コピーで試してください。

目次

先にコピーを作り、対象範囲を指定する

元ファイルのコピーを保存し、練習には別の空のスプレッドシートを使います。

練習用のシート名を「結合練習」にしてください。

A2に東京、A3に10、A4に数式=2+3、A5に日付を入力します。

B2:B5を空欄にしたうえで、各行のA列とB列を1行ずつ結合してください。

値を入れるのは各範囲の左上だけです。

結合前に右側にあった値は、解除によって復元されません。

スポンサーリンク

メニューから一括で結合を解除する

名前ボックスへA2:B5と入力し、Enterを押して対象範囲を選びます。

シート全体を対象にする場合は、行番号と列見出しが交わる左上の全選択ボタンを使います。

ツールバーの「結合タイプを選択」を開き、「結合を解除」を選びます。

数式バーでA4の数式が=2+3のままか確認します。

結合操作の場所はGoogle公式の表示形式ヘルプでも確認できます。

条件結果
A2:B2/文字A2は東京、B2は空欄
A3:B3/数値A3は10、B3は空欄
A4:B4/数式A4の計算値は5、数式は=2+3、B4は空欄
A5:B5/日付A5の日付を保持、B5は空欄
結合解除後の練習表。値はA列に残りB列は空欄
2026年10月2日、Web版Google Sheetsの専用練習表で撮影。メニュー操作の結果であり、文字を複製するGASの実行結果ではありません。

この表と画像は、2026年10月2日のメニュー操作の検証記録です。

メニューで解除した直後は、Ctrl+Z(MacはCommand+Z)で元に戻します。

後から他の編集をした場合は、連続して元に戻す前に、作業コピーや変更履歴で復旧対象を確認します。

GASで文字ラベルだけを複製する

次のGASは、シート「結合練習」のA2:B2だけを対象にします。

メニュー解除の練習後は、A2:B2をもう一度結合し、左上に東京が入った状態に戻してください。

結合がない範囲には、このコードは文字を複製しません。

結合を解除し、東京をA2とB2へ複製する想定です。

コードは対象内の結合範囲を集め、入力条件をすべて検査してから書き込みます。

数値・日付・数式・等号やアポストロフィで始まる文字列は拒否します。

範囲をまたぐ結合や1000セルを超える指定も拒否します。

1000セルはこのサンプルの上限で、Google Sheets全体の上限ではありません。

function fillMergedLabels() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('結合練習');
  if (!sheet) throw new Error('対象シートがありません: 結合練習');
  const area = sheet.getRange('A2:B2'); // コピーした練習表の文字ラベルだけ
  if (area.getNumRows() * area.getNumColumns() > 1000) {
    throw new Error('対象は1000セル以内にしてください');
  }
  const plans = area.getMergedRanges().map(merged => {
    if (merged.getRow() < area.getRow() || merged.getColumn() < area.getColumn()
        || merged.getLastRow() > area.getLastRow()
        || merged.getLastColumn() > area.getLastColumn()) {
      throw new Error('対象範囲をまたぐ結合セルがあります');
    }
    const cell = merged.getCell(1, 1);
    const value = cell.getValue();
    if (cell.getFormula() || typeof value !== 'string'
        || value.startsWith('=') || value.startsWith("'")) {
      throw new Error('複製できるのは数式ではない文字ラベルだけです');
    }
    return { merged, values: Array.from({ length: merged.getNumRows() },
      () => Array(merged.getNumColumns()).fill(value)) };
  });
  // すべての入力を確認してから変更する。
  plans.forEach(plan => {
    plan.merged.breakApart();
    plan.merged.setValues(plan.values);
  });
  console.log('処理した結合範囲: ' + plans.length);
}

編集権限のある練習表から「拡張機能」→「Apps Script」を開き、コードを貼って保存します。

関数fillMergedLabelsを選び、実行してください。

承認画面が出たら、コードと要求権限が練習表の変更に必要か確認します。

成功時はA2とB2に東京が入り、実行ログに「処理した結合範囲: 1」と出る想定です。

A2:B2の結合が外れ、A3:B5の値と結合が変わっていないかも確認してください。

A3:B3が結合された練習表で範囲をA2:B5へ広げると、数値を検出して変更前に止まる想定です。

既存の検証記録では、ローカルの模擬環境で入力拒否と事前検査を確認しています。

Google上での承認・書き込み実行は未確認です。

2026年10月25日の見直しは公式資料と配布コードの照合で、メニュー操作やGASを再実行したものではありません。

このGASには、途中の失敗時に変更全体を取り消す仕組みがありません。

結合解除後に書き込みが失敗すると、解除だけが残る場合があります。

失敗時は追加実行を止め、変更前のコピーと照合して復旧してください。

解除できないときの切り分け

編集権限、保護された範囲、対象をまたぐ結合を確認します。

権限が足りない場合は、ファイル所有者に対象範囲の編集可否を確認してください。

結合ボタンが無効なら、名前ボックスの範囲が単一セルになっていないか確かめます。

GASのログが「処理した結合範囲: 0」なら、シート名と範囲内の結合を確認してください。

文字の複製が不要な数式や日付の表では、先のメニュー操作を使います。

操作・GAS・claspの練習ZIPをダウンロードできます。

値の種類はGoogleスプレッドシート│GASでスプレッドシートのA1セルの値を取得する方法で確認できます。

エラーの意味はGAS│エラーの意味と対処法|6分制限・承認・回数上限・トリガーを参照します。

スポンサーリンク

仕様・配布コードと関連記事

結合範囲の取得と解除は、公式のgetMergedRanges()とbreakApart()で確認できます。

練習ZIP内のarticle-143.jsが、この結合解除のコードです。

本文とは改行・空白を除いて一致し、READMEも実サービス上の書き込みは未確認としています。

別番号のコードやclasp用ファイルは、この練習には使いません。

まずA2:B2だけで、解除・文字複製・対象外の保持を確かめてください。

次に学ぶ・作業環境を選ぶ

学習を続けたい方や、作業環境を整えたい方は、目的に合うガイドをご覧ください。

スプレッドシート・GASのおすすめ書籍

作業環境の作り方

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次