GASでスプレッドシートのグループ化された折りたたみを展開する方法

どーも!今日はGoogle Apps Script(GAS)を使ってスプレッドシートのグループ化された行や列を展開するexpandGroups()メソッドについて話していくばい!

スプレッドシートでグループ化を使うと、データを折りたたんでスッキリ整理できるっちゃけど、 一括で展開したい時にポチポチ手動でやるのはめんどいさね。そこで、expandGroups()を使えば一発で展開できるんじゃ!


スポンサーリンク

expandGroups()って何するメソッドけ?

expandGroups()は、指定した範囲のグループをすべて展開するメソッドたい。 つまり、「この範囲のグループを全部開いてね!」って指示を出す感じじゃ。

例えば、次のコードを実行すると、”A1:D10″ の範囲にあるグループが展開されるばい!

const range = sheet.getRange("A1:D10");
range.expandGroups();

GASの公式ドキュメントにも書いてあるけど、このメソッドはRangeクラスに属していて、 呼び出した範囲のグループを展開する動作をするっちゃ。


expandGroups()の実装手順ば紹介するばい!

1. シート全体のグループを展開する

function expandAllGroups() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getActiveSheet();
  const dataRange = sheet.getDataRange();
  
  dataRange.expandGroups();
  SpreadsheetApp.flush();
}

このスクリプトを実行すると、アクティブなシートのすべてのグループが展開されるばい! SpreadsheetApp.flush();を使うことで、すぐに反映されるっちゃね。

2. 選択範囲だけグループを展開する

function expandSelectedGroups() {
  const sheet = SpreadsheetApp.getActiveSheet();
  const selection = sheet.getSelection();
  const activeRange = selection.getActiveRange();
  
  activeRange.expandGroups();
}

これは、ユーザーが選択した範囲のグループだけを展開するスクリプトじゃ。 「ここだけ開きたい!」って時に便利ばい。

3. onEditトリガーで自動展開する

function onEdit(e) {
  const sheet = e.source.getActiveSheet();
  const range = e.range;
  
  if (range.getA1Notation() === "A1" && e.value === "TRUE") {
    sheet.getRange("B2:F20").expandGroups();
  }
}

これは、セルA1の値がTRUEに変わったら、指定範囲のグループを展開するスクリプトたい。 チェックボックスと組み合わせると、簡単に開閉を制御できるさ。


expandGroups()を使う時の注意点

  1. 展開するグループがない場合は何も起こらん
  2. 管理者権限が必要な場合がある(組織のGAS設定を確認しよう)
  3. 範囲の指定ミスに注意(存在しない範囲を指定するとエラーが出るばい)

エラーが出た時の対処としては、こんな風にtry-catchを使うといいっちゃね。

function safeExpandGroups() {
  try {
    const sheet = SpreadsheetApp.getActiveSheet();
    sheet.getRange("A1:D10").expandGroups();
  } catch (e) {
    console.error("エラー発生: " + e.message);
    SpreadsheetApp.getUi().alert("グループ展開に失敗しました");
  }
}

まとめ

expandGroups()を使えば、スプレッドシートのグループを効率的に管理できるばい!

  • シート全体のグループを展開する
  • 選択範囲だけ展開する
  • onEditトリガーを活用して自動展開する
  • try-catchを使ってエラー処理をする

こんな感じで、GASを活用すれば作業がグッと楽になるけん、ぜひ試してみてばい!


コメント

タイトルとURLをコピーしました