行を操作する

【GAS】スプレッドシートの指定行をグループ化する

GASでスプレッドシートの指定行をグループ化するには「shiftRowGroupDepth(delta)」を利用する。

shiftRowGroupDepth(delta)

範囲の行グループ化の深さを指定された量だけ変更します。 これには、範囲と交差するグループを作成、変更、または削除する効果があります。正のデルタの場合、グループが作成および/または変更されます。負のデルタの場合、グループは破棄および/または変更されます。 これは、グループの深さを0未満または8以上に減らす場合には効果がありません。 row group control positionがBeforeの場合、最初の行の深さをシフトしようとするとエラーがスローされます

https://developers.google.com/apps-script/reference/spreadsheet/range#shiftrowgroupdepthdelta

関連記事:【GAS】スプレッドシートの指定行から複数行を非表示にする

shiftRowGroupDepth(delta)の戻り値

Range—この範囲、連鎖用。

shiftRowGroupDepth(delta)のスロー

Error—制御位置がGroupControlTogglePosition.BEFORE

shiftRowGroupDepth(delta)のパラメーター

名前タイプ説明
deltaIntegerこの範囲の行グループの深さを変更する量。
shiftRowGroupDepth(delta)のパラメーター

スプレッドシートの指定行をグループ化するGAS

function myFunction() {
  //アクティブなスプレッドシートを返す
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  //アクティブな0番目のシートを返す
  var sht = ss.getSheets()[0];
 //テキストを変数へ格納
  var array1,array2,array3
    array1 = "Spread";
    array2 = "Sheet";
    array3 = ".BLUE";
 //変数を繰り返しA~D列の10行目まで入力
 for(let i=1;i<11; i++){
   sht.getRange(i,1).setValue(array1);//10行目までarray1をセット
   sht.getRange(i,2).setValue(array2);//10行目までarray2をセット
   sht.getRange(i,3).setValue(array3);//10行目までarray3をセット
   sht.getRange(i,4).setValue(i);//10行目まで連番をセット
}
 //shiftRowGroupDepthでrng格納した3行目をグループ化にする
  var rng = sht.getRange(3,1,1,1);
  rng.shiftRowGroupDepth(1);
 //メッセージでグループ化を掲載!
  Browser.msgBox("任意の行をグループ化したよ!");
}

スプレッドシートの指定行をグループ化するGAS実行の様子

shiftRowGroupDepth(delta)メソッドを利用して、スプレッドシートの指定行をグループ化するGASを実行してみました。

shiftRowGroupDepthを実行すると、指定行の3行目がグループ化されていることがわかります。

shiftRowGroupDepth-ON
shiftRowGroupDepthを実行した様子

スプレッドシートの指定行をグループ化するまとめ

GAS×スプレッドシートの指定行をグループ化するならshiftRowGroupDepth(delta)メソッドを利用しましょう。

関連記事:【GAS】スプレッドシートの指定行から複数行を非表示にする

関連記事:【GAS】スプレッドシートで行の非表示を再表示する

関連記事:【GAS】スプレッドシートで複数行を削除する

関連記事:【GAS】スプレッドシートの指定行を削除する

関連記事:【GAS】スプレッドシートで最下部に行を追加する

関連記事:【GAS】スプレッドシートの指定行の後ろに複数行を追加する

関連記事:【GAS】スプレッドシートの指定行の前に複数行を追加する

参考記事:【GAS】スプレッドシートに行を挿入する

-行を操作する