LoginSignup
4
3

More than 5 years have passed since last update.

Google Apps Script でセル結合を解除してシートを複製する

Last updated at Posted at 2017-11-09

データ入力、閲覧では役に立つセルの結合ですが、プログラムで処理する場合は邪魔でしかありません。

  • 普通にセル結合を解除すると左上のセル以外は空文字として結合が解除される
  • プログラムで行単位処理する場合も、左上以外のセルは値は空文字

な仕様になっているので、プログラムで処理する場合には一旦セル解除したシートを作成し、そのシートに対して処理した方が良さそうです。

Before

スクリーンショット 2017-11-09 18.08.32.png

After

スクリーンショット 2017-11-09 18.09.28.png

スクリプト

function createUnmergedSheet(sheetName) {
  // オリジナルのシート名_unmerged のファイルを作成
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sourceSheet = ss.getSheetByName(sheetName);
  var unmergedSheet = sourceSheet.copyTo(ss);
  var name = sourceSheet.getName() + "_unmerged";
  unmergedSheet.setName(name);

  // 作成したシート上の全セル結合を解除
  var ranges = unmergedSheet.getDataRange().getMergedRanges();
  for (var i = 0; i < ranges.length; i++) {
    var targetRange = ranges[i];
    var value = targetRange.getDisplayValue();
    targetRange.breakApart();
    targetRange.setValue(value);
  }  
}
4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3