列を操作する

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

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

expandColumnGroupsUpToDepth(groupDepth)

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

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

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

expandColumnGroupsUpToDepth(groupDepth)のパラメーター

名前タイプ説明
groupDepthInteger列グループを展開するまでのグループの深さ。
expandColumnGroupsUpToDepth(groupDepth)のパラメーター

expandColumnGroupsUpToDepth(groupDepth)の戻り値

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

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

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

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

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

スプレッドシートの指定の列グループを表示して指定外の列を非表示にしない場合

expandColumnGroupsUpToDepth(groupDepth)を実行しないとき、すべての列グループは展開されません。

expandColumnGroupsUpToDepth(groupDepth)-no
expandColumnGroupsUpToDepth(groupDepth)を実行しない場合

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

expandColumnGroupsUpToDepth(groupDepth)を実行すると、指定した深さの列グループのみ展開されます。

expandColumnGroupsUpToDepth(groupDepth)-yes
expandColumnGroupsUpToDepth(groupDepth)を実行した場合

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

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

関連記事:【GAS】スプレッドシートの列グループを開く

関連記事:【GAS】スプレッドシートの列グループを閉じる

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

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

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

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

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

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

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

-列を操作する