Google Apps Scriptで結合セルを解除する方法(breakApartメソッド)

Google Apps Script(GAS)でセルを結合する方法を前回紹介しましたが、今回は逆に結合セルを解除する方法を解説します。

結合セルの解除では、breakApartメソッドを利用しますが、GASでセル結合を解除する際の注意点も紹介します。

GASでスプレッドシートのセルを結合する方法

Google Apps Script(GAS)でスプレッドシートの複数のセルを結合させる方法を前回紹介しました。

GoogleAppsScriptでスプレッドシートのセルを結合する方法(mergeメソッド)

セルの結合はスプレッドシート上で行うケースは多いですが、GASのスクリプトでも同様のセル結合の操作が可能です。

結合セルの解除もGoogle Apps Scriptで可能

セルの結合がGASで可能ということは、実は逆に結合セルを解除することもGASでは可能です。

セルの結合は表などを作成した際の見栄えを整える際によく使われます。

しかし、セルが結合されることで、通常のセルと異なった動きをするため、処理などを行う際に不便になることがあります。

そんな時に人力で結合セルの解除は労力がかかるので、GASでスクリプトを用意すれば自動化が可能です。

GASのbreakApartで結合セルを解除する際の注意点

Google Apps Script(GAS)で結合セルを解除する際に利用するメソッドは「breakApart」です。

Range.breakApart()

breakApartメソッドは、スプレッドシートのセルのRangeクラスで利用できるメソッドで、指定されたセル範囲の結合を解除します。

breakApartで結合セルを解除する際の注意点として、「解除したい結合セルの範囲全体を指定する必要があること」が挙げられます。

例えば、A1とB1セルを結合したセルがある場合、A1セルだけをgetRangeメソッドで指定して、breakApartメソッドを使ってもエラーで実行できません。

スプレッドシートの結合セルの1部をgetRangeで指定して、breakApartメソッドを実行するとエラーになる

「結合/結合解除するには、結合範囲のすべてのセルを選択する必要があります」というエラーメッセージが表示され、実行エラーします。

 

GASによる結合セルの解除方法

実際にGoogle Apps Script(GAS)で結合セルを解除する方法をサンプルコードを通して解説します。

Google Apps Script(GAS)のmergeメソッドでセルの結合を実行した結果、スプレッドシートも反映

あらかじめスプレッドシートのB2:E6セルを結合しているので、この結合セルをGASのbreakApartメソッドで解除します。

Google Apps Script(GAS)でスプレッドシートで結合されたセルを解除する方法

function deleteMerge() {
//スクリプトに紐付いたスプレッドシートのアクティブなシートを読み込む
let mySheet = SpreadsheetApp.getActiveSheet()
//シートから結合を解除したい範囲(B2:E6)のセルを取得
let mergeRange = mySheet.getRange(2, 2, 5, 4);
//取得したセル範囲に対しセルの結合解除を実行
mergeRange.breakApart();
}

サンプルコードを実行すると、B2:E6の結合セルが解除され、単体のセルに変化します。

まとめ・終わりに

今回、スプレッドシートの結合セルをGoogle Apps Scriptで解除する方法を紹介しました。

GASでセルを結合できたように、逆に結合されたセルも解除することが可能です。

結合セルの解除ではbreakApartメソッドを使いますが、事前に結合セル全体をgetRangeメソッドで選択しておく必要があります。

結合セルはスプレッドシートの操作のじゃまになることがあるため、GASを使って自動的に結合セルを解除するプログラムを作成してみてください。