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

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

本稿はWeb版Googleスプレッドシートの練習表で、操作と結果を確かめる手順を説明します。

通常の結合解除では、結合範囲の左上の値が残り、他のセルは空欄になります。

文字をすべてのセルに複製したい場合は、別の処理が必要です。

目次

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

元ファイルのコピーを作り、シート名を「結合練習」にします。

A2:B2を結合して東京と入力し、A3:B3には10、A4:B4には数式 =2+3、A5:B5には日付を入れて結合します。

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

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

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

名前ボックスへ A2:B5 と入力してEnterを押します。

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

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

条件結果
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の実行結果ではありません。

この表は実際のメニュー操作で確認した結果です。

解除直後ならCtrl+Zで結合状態へ戻せます。

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

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

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

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

対象全体の検査を終えるまで書き込みません。

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

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

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 を選んで実行します。

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

結果は東京が2セルに入り、処理した結合範囲が1になる想定です。

範囲を A2:B5 に広げると、数値を含むため変更前に停止する想定です。

この書き込みGASはローカルの模擬環境で、入力拒否と事前検査を確認しました。

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

実機確認済みのメニュー操作とは分けて扱います。

GASの複数範囲への書き込みはトランザクションではなく、権限や通信の失敗時に部分変更が残る可能性があります。

復旧は必ず変更前のコピーを使います。

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

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

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

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

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

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

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

関連記事と既存の案内

関連する操作は各記事へのリンクから確認できます。

練習ZIPと本文の検証範囲を優先し、旧実装や外部の例をそのまま業務ファイルへ適用しないようにします。

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

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

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

作業環境の作り方

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