Google Apps Script (GAS) でシートの行グループ・列グループの展開や折りたたみなどの操作や設定を行う方法を説明します。
Sheetクラスのメソッドを利用した手順について説明します。
Google Apps Scriptの基本的な使い方については下記をご覧ください。
- GASによるスプレッドシート操作の概要
- このシートの行グループの設定や操作を行う
- このシートのすべての行グループを折りたたむ:collapseAllRowGroups()
- このシートのすべての行グループを展開する:expandAllRowGroups()
- このシートのすべての行グループを指定した深さまで展開する:expandRowGroupsUpToDepth(groupDepth)
- このシートの指定した行の行グループの深さを取得する:getRowGroupDepth(rowIndex)
- このシートの指定した行で指定した深さにある行グループを取得する:getRowGroup(rowIndex, groupDepth)
- このシートのすべての行グループのトグルの位置を取得する:getRowGroupControlPosition()
- このシートのすべての行グループのトグルの位置を設定する:setRowGroupControlPosition(position)
- このシートの列グループの設定や操作を行う
- このシートのすべての列グループを折りたたむ:collapseAllColumnGroups()
- このシートのすべての列グループを展開する:expandAllColumnGroups()
- このシートのすべての列グループを指定した深さまで展開する:expandColumnGroupsUpToDepth(groupDepth)
- このシートの指定した列の列グループの深さを取得する:getColumnGroupDepth(columnIndex)
- このシートの指定した列で指定した深さにある列グループを取得する:getColumnGroup(columnIndex, groupDepth)
- このシートのすべての列グループのトグルの位置を取得する:getColumnGroupControlPosition()
- このシートのすべての列グループのトグルの位置を設定する:setColumnGroupControlPosition(position)
- まとめ
GASによるスプレッドシート操作の概要
GASでスプレッドシートを操作するための「SpreadSheetサービス」は、主に下記のクラスで構成されています。
クラス | 説明 |
---|---|
SpreadSheetApp | SpreadSheetサービスの親クラス |
Spreadsheet | スプレッドシートを操作するクラス |
Sheet | シートを操作するクラス |
Range | セル範囲を操作するクラス |
それぞれ下記のような位置付けになります。
「SpreadSheetApp」→「SpreadSheet」→「Sheet」→「Range」という順の階層構造になっています。操作対象に応じて、下の階層にたどってオブジェクトを取得して利用します。
このページでは、上記の中のSheetクラスの下記のメソッドについて説明します。
メソッド | 戻り値 | 説明 |
---|---|---|
collapseAllRowGroups() | Sheet | このシートのすべての行グループを折りたたむ |
expandAllRowGroups() | Sheet | このシートのすべての行グループを展開する |
expandRowGroupsUpToDepth(groupDepth) | Sheet | このシートのすべての行グループを指定した深さまで展開する |
getRowGroupDepth(rowIndex) | Integer | このシートの指定した行の行グループの深さを取得する |
getRowGroup(rowIndex, groupDepth) | Group | このシートの指定した行で指定した深さにある行グループを取得する |
getRowGroupControlPosition() | GroupControl TogglePosition | このシートのすべての行グループのトグルの位置を取得する |
setRowGroupControlPosition(position) | Sheet | このシートのすべての行グループのトグルの位置を設定する |
collapseAllColumnGroups() | Sheet | このシートのすべての列グループを折りたたむ |
expandAllColumnGroups() | Sheet | このシートのすべての列グループを展開する |
expandColumnGroupsUpToDepth(groupDepth) | Sheet | このシートのすべての列グループを指定した深さまで展開する |
getColumnGroupDepth(columnIndex) | Integer | このシートの指定した列の列グループの深さを取得する |
getColumnGroup(columnIndex, groupDepth) | Group | このシートの指定した列で指定した深さにある列グループを取得する |
getColumnGroupControlPosition() | GroupControl TogglePosition | このシートのすべての列グループのトグルの位置を取得する |
setColumnGroupControlPosition(position) | Sheet | このシートのすべての列グループのトグルの位置を設定する |
このシートの行グループの設定や操作を行う
このシートの行グループの展開や折りたたみ、また各種情報を取得・設定するメソッドを説明します。
このシートのすべての行グループを折りたたむ:collapseAllRowGroups()
このシートのすべての行グループを折りたたむ方法です。
下記のように実行します。
1 2 3 4 5 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); testSheet.collapseAllRowGroups(); } |
下記のファイルに対して実行してみます。複数の行グループがあるファイルです。
下記の結果になります。すべての行グループが折りたたまれます。
このシートのすべての行グループを展開する:expandAllRowGroups()
このシートのすべての行グループを展開する方法です。
下記のように実行します。
1 2 3 4 5 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); testSheet.collapseAllRowGroups(); } |
下記のファイルに対して実行してみます。複数の行グループがあり、展開されているものと折りたたまれているものが混在しています。
下記の結果になります。すべての行グループが展開されます。
このシートのすべての行グループを指定した深さまで展開する:expandRowGroupsUpToDepth(groupDepth)
このシートのすべての行グループを指定した深さまで展開する方法です。
下記のように実行します。
1 2 3 4 5 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); testSheet.expandRowGroupsUpToDepth(2); } |
下記のファイルに対して実行してみます。複数の行グループがあり、展開されているものと折りたたまれているものが混在しています。
下記の結果になります。すべての行グループが、指定した深さ「2」で展開された状態になります。
このシートの指定した行の行グループの深さを取得する:getRowGroupDepth(rowIndex)
このシートの指定した行の行グループの深さを取得する方法です。
下記のように実行します。
1 2 3 4 5 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); console.log(testSheet.getRowGroupDepth(5)); } |
下記のファイルに対して実行してみます。
下記の結果になります。指定した5行目は深さ2になります。
1 |
2 |
なお、それぞれの深さは、下記の値になります。
このシートの指定した行で指定した深さにある行グループを取得する:getRowGroup(rowIndex, groupDepth)
このシートの指定した行で指定した深さにある行グループを取得する方法です。
戻り値は、Groupクラスです。
下記のように実行します。取得した値からgetRange().getA1Notatioin()でセル範囲の値を表示しています。
1 2 3 4 5 6 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testGroup = testSheet.getRowGroup(11, 2); console.log(testGroup.getRange().getA1Notation()); } |
下記のファイルに対して実行してみます。
11行目の深さ2を指定して実行した結果は下記になります。取得した行グループのセル範囲は10行目〜15行目になります。
1 |
10:15 |
下記の行グループを取得したということになります。
getRowGroup(11, 3)として実行して11行目の深さ3の行グループを取得した場合は、下記になります。
1 |
11:12 |
下記の行グループを取得したということになります。
このシートのすべての行グループのトグルの位置を取得する:getRowGroupControlPosition()
このシートのすべての行グループのトグルの位置を取得する方法です。
トグルとは、グループを展開したり折りたたんだりする際にクリックする部分です。
下記のように、上にある場合(デフォルト)と、下にある場合があります。
戻り値は、GroupControlTogglePositionであり、上にある場合はBEFORE、下にある場合はAFTERを返します。
下記のように実行します。
1 2 3 4 5 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); console.log(testSheet.getRowGroupControlPosition().toString()); } |
下記のファイルに対して実行してみます。
下記の結果になります。BEFOREが返ります。
1 |
BEFORE |
このシートのすべての行グループのトグルの位置を設定する:setRowGroupControlPosition(position)
このシートのすべての行グループのトグルの位置を設定する方法です。
トグルとは、グループを展開したり折りたたんだりする際にクリックする部分です。
下記のように、上にある場合(デフォルト)と、下にある場合があります。
GroupControlTogglePositionを利用し、上にある場合はBEFORE、下にある場合はAFTERを指定します。
下記のように実行します。
1 2 3 4 5 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); testSheet.setRowGroupControlPosition(SpreadsheetApp.GroupControlTogglePosition.AFTER) } |
下記のファイルに対して実行してみます。
下記の結果になります。トグルの位置が下に変わります。
このシートの列グループの設定や操作を行う
このシートの列グループの展開や折りたたみ、また各種情報を取得・設定するメソッドを説明します。
このシートのすべての列グループを折りたたむ:collapseAllColumnGroups()
このシートのすべての列グループを折りたたむ方法です。
下記のように実行します。
1 2 3 4 5 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); testSheet.collapseAllColumnGroups(); } |
下記のファイルに対して実行してみます。複数の列グループがあるファイルです。
下記の結果になります。すべての列グループが折りたたまれます。
このシートのすべての列グループを展開する:expandAllColumnGroups()
このシートのすべての列グループを展開する方法です。
下記のように実行します。
1 2 3 4 5 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); testSheet.expandAllColumnGroups(); } |
下記のファイルに対して実行してみます。複数の列グループがあり、展開されているものと折りたたまれているものが混在しています。
下記の結果になります。すべての列グループが展開されます。
このシートのすべての列グループを指定した深さまで展開する:expandColumnGroupsUpToDepth(groupDepth)
このシートのすべての列グループを指定した深さまで展開する方法です。
下記のように実行します。
1 2 3 4 5 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); testSheet.expandColumnGroupsUpToDepth(2); } |
下記のファイルに対して実行してみます。複数の列グループがあり、展開されているものと折りたたまれているものが混在しています。
下記の結果になります。すべての列グループが、指定した深さ「2」で展開された状態になります。
このシートの指定した列の列グループの深さを取得する:getColumnGroupDepth(columnIndex)
このシートの指定した列の列グループの深さを取得する方法です。
下記のように実行します。
1 2 3 4 5 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); console.log(testSheet.getColumnGroupDepth(5)); } |
下記のファイルに対して実行してみます。
下記の結果になります。指定した5列目(E列)は深さ3になります。
1 |
3 |
なお、それぞれの深さは、下記の値になります。
このシートの指定した列で指定した深さにある列グループを取得する:getColumnGroup(columnIndex, groupDepth)
このシートの指定した列で指定した深さにある列グループを取得する方法です。
戻り値は、Groupクラスです。
下記のように実行します。取得した値からgetRange().getA1Notatioin()でセル範囲の値を表示しています。
1 2 3 4 5 6 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testGroup = testSheet.getColumnGroup(5, 2); console.log(testGroup.getRange().getA1Notation()); } |
下記のファイルに対して実行してみます。
5列目(E列)の深さ2を指定して実行した結果は下記になります。取得した列グループのセル範囲はD列目〜K列目になります。
1 |
D:K |
下記の列グループを取得したということになります。
getColumnGroup(5, 3)として実行して5列目(E列)の深さ3の列グループを取得した場合は、下記になります。
1 |
E:G |
下記の列グループを取得したということになります。
このシートのすべての列グループのトグルの位置を取得する:getColumnGroupControlPosition()
このシートのすべての列グループのトグルの位置を取得する方法です。
トグルとは、グループを展開したり折りたたんだりする際にクリックする部分です。
下記のように、左にある場合(デフォルト)と、右にある場合があります。
戻り値は、GroupControlTogglePositionであり、左にある場合はBEFORE、右にある場合はAFTERを返します。
下記のように実行します。
1 2 3 4 5 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); console.log(testSheet.getColumnGroupControlPosition().toString()); } |
下記のファイルに対して実行してみます。
下記の結果になります。BEFOREが返ります。
1 |
BEFORE |
このシートのすべての列グループのトグルの位置を設定する:setColumnGroupControlPosition(position)
このシートのすべての列グループのトグルの位置を設定する方法です。
トグルとは、グループを展開したり折りたたんだりする際にクリックする部分です。
下記のように、左にある場合(デフォルト)と、右にある場合があります。
GroupControlTogglePositionを利用し、左にある場合はBEFORE、右にある場合はAFTERを指定します。
下記のように実行します。
1 2 3 4 5 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); testSheet.setColumnGroupControlPosition(SpreadsheetApp.GroupControlTogglePosition.AFTER); } |
下記のファイルに対して実行してみます。
下記の結果になります。トグルの位置が右に変わります。
まとめ
Google Apps Script (GAS) でシートの行グループ・列グループの展開や折りたたみなどの操作や設定を行う方法を説明しました。
GASは無料で利用できてとても便利なツールです。
Googleスプレッドシート等のGoogleアプリケーションを利用されている方は、GASを習得することで作業を大きく効率化できます。
GASの基本構文を知りたい方は、下記もご覧ください。