列を操作する

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

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

shiftColumnGroupDepth(delta)

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

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

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

shiftColumnGroupDepth(delta)のパラメーター

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

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

function myFunction() {
  //アクティブなスプレッドシートを返す
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  //アクティブな0番目のシートを取得!
  var sht = ss.getSheets()[0];
  //見出しテキストを作成
  var midashi = [
    ["概要","内容","項目","ナンバリング"]
  ];
 //見出しテキストを1行目に設置
  sht.getRange("A1:D1").setValues(midashi);
  //見出しテキストを装飾
  sht.getRange("A1:D1").setFontWeight("bold").setFontSize(20);
 //繰返しテキストを変数へ格納
  var array1,array2,array3
    array1 = "Spread";
    array2 = "Sheet";
    array3 = ".BLUE";
 //変数を繰り返しA~D列の11行目まで入力
  for(let i=2;i<=11;i++){
    sht.getRange(i,1).setValue(array1);//11行目までarray1をセット
    sht.getRange(i,2).setValue(array2);//11行目までarray2をセット
    sht.getRange(i,3).setValue(array3);//11行目までarray3をセット
    var array = array1+array2+array3;  //配列テキストの合体!
    sht.getRange(i,4).setValue(array+(i-1));//11行目まで連番でセット
  }
 //メッセージボックスでYESNOを確認
 var rng = sht.getRange("B:C");//shiftColumnGroupDepth(delta)でグループ化する範囲
  var num = 1; //shiftColumnGroupDepth(delta)でグループ化する深さ(最大8)
  var result = Browser.msgBox("列をグループ化しますか?",Browser.Buttons.YES_NO);
  if(result == "no"){
    Browser.msgBox("列はグループ化しなかったよ!");//noだったらそのまま
  } else {
    rng.shiftColumnGroupDepth(num);//shiftColumnGroupDepth(delta)で列をグループ化
    Browser.msgBox("指定範囲列をグループ化しました!")//メッセージを掲載!
  }
}

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

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

スプレッドシートの指定列をグループ化しない場合

shiftColumnGroupDepthを実行しないとき、指定列はグループ化されません。

shiftColumnGroupDepth-no
shiftColumnGroupDepthを実行しないとき

スプレッドシートの指定列をグループ化する場合

shiftColumnGroupDepthを実行すると、指定列はグループ化されています。

shiftColumnGroupDepth-yes
shiftColumnGroupDepthを実行する場合

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

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

関連記事:【GAS】スプレッドシートの指定範囲の列を再表示する

関連記事:【GAS】スプレッドシートの指定列から始まる複数列を削除する

関連記事:【GAS】スプレッドシートで指定した列幅を最適化する

関連記事:【GAS】スプレッドシートに列を挿入する

関連記事:【GAS】スプレッドシートで指定した列幅を最適化する

関連記事:【GAS】スプレッドシートに列を挿入する

-列を操作する