行を操作する

【GAS】スプレッドシート指定の行グループを表示・指定外の行グループを非表示にする

GASでスプレッドシート指定の行グループを表示・指定外の行グループを非表示にするには「expandRowGroupsUpToDepth(groupDepth)」を利用する。

expandRowGroupsUpToDepth(groupDepth)

指定された深さまですべての行グループを展開し、他のすべての行グループを折りたたみます。

https://developers.google.com/apps-script/reference/spreadsheet/sheet?hl=en#expandrowgroupsuptodepthgroupdepth

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

expandRowGroupsUpToDepth(groupDepth)の戻り値

Sheet—このシート、連鎖用。

expandRowGroupsUpToDepth(groupDepth)のパラメータ

名前タイプ説明
groupDepthInteger行グループを展開するまでのグループの深さ。
hideRows(rowIndex, numRows)のパラメーター

スプレッドシート指定の行グループを表示・指定外の行グループを非表示にするGAS

function myFunction() {
  //アクティブなスプレッドシートを返す
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  //アクティブな0番目のシートを返す
  var sht = ss.getSheets()[0];
 //テキストを変数へ格納
  var array1,array2
    array1 = "SpreadSheet";
    array2 = ".BLUE";
 //変数を繰り返しA~D列の50行目まで入力
 for(let i=1;i<=50; i++){
    sht.getRange(i,1).setValue(array1);//50行目までarray1をセット
    sht.getRange(i,2).setValue(array2);//50行目までarray2をセット
    sht.getRange(i,3).setValue(array1+array2+i);//50行目までarray3+iをセット
  }
 //shiftRowGroupDepthで3行目をグループ化にする
 var rng1 = sht.getRange(10,1,2,1); //10行目1列目から2行1列分をグループ対象行に
    rng1.shiftRowGroupDepth(1); //rng1範囲を指定の深さまでグループ化
    rng1.collapseGroups();  //rng1グループ化の範囲を閉じる
 //rng1を囲む深さ2のグループrng2を作成
  var rng2 = sht.getRange(3,1,10,1); //3行目1列目から10行1列分をグループ対象行に
    rng2.shiftRowGroupDepth(1); //rng2範囲を指定の深さまでグループ化
    rng2.collapseGroups(); //rng2グループ化の範囲を閉じる
 //深さnumber
 var num1 = 1;
 //メッセージボックスでYESNOを確認
  var result = Browser.msgBox("グループの深さ"+num1+"までを展開する?",Browser.Buttons.YES_NO);
  //ifで条件分岐
  if(result=="no"){
    Browser.msgBox("グループ化の行は閉じたままにするね!");//noだったら閉じたまま
    }else{
    // sht.expandAllRowGroups(); // すべての閉じグループ行を開く!
    sht.expandRowGroupsUpToDepth(num1);
    Browser.msgBox("グループの深さ"+num1+"までを展開して他の行グループは非表示にしたよ!");//開いたメッセージを掲載!
  }
}

スプレッドシート指定の行グループを表示・指定外の行グループを非表示にするGAS実行の様子

expandRowGroupsUpToDepth(groupDepth)メソッドを利用して、スプレッドシート指定の行グループを表示・指定外の行グループを非表示にするGASを実行してみました。

スプレッドシートのグループ化された行を閉じない場合

expandRowGroupsUpToDepthを実行しないとき、グループ化された行は閉じたままになっています。

expandRowGroupsUpToDepth-No
expandRowGroupsUpToDepthを実行しなかった様子

スプレッドシート指定の行グループを表示・指定外の行グループを非表示にする場合

expandRowGroupsUpToDepthを実行すると、グループ化された行のうち1階層までが展開されています。

expandRowGroupsUpToDepth-YES
expandRowGroupsUpToDepthを実行した様子

スプレッドシート指定の行グループを表示・指定外の行グループを非表示にするまとめ

GAS×スプレッドシート指定の行グループを表示・指定外の行グループを非表示にするならexpandRowGroupsUpToDepth(groupDepth)メソッドを利用しましょう。

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

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

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

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

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

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

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

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

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

-行を操作する