GAS初心者でも簡単!全シート名をループで取得する方法
GASで全シート名をどうやって取得するんだろ?ループで取得する方法がわかればいいんだけど…

猫男

catman
よし、catmanが「GASで全シート名をループで取得する方法」についておしえてやる!
GASで全シート名を取得する方法
GAS(Google Apps Script)を使えば、スプレッドシート内の全てのシート名を簡単に取得できるんだ。
まずは、基礎から確認しよう。
スプレッドシートを取得する
GASでは、まず対象となるスプレッドシートを取得しなければならない。
SpreadsheetApp.getActiveSpreadsheet()を使えば簡単さ。
これで、現在開いているスプレッドシートを取得できるはずだ。
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
全シートを取得してループを回す
取得したシートの中から全てのシートを取り出してループを回したい??
そんなときは、getSheets()メソッドを使うといい。
const sheets = spreadsheet.getSheets();
for (let i = 0; i < sheets.length; i++) {
const sheet = sheets[i];
Logger.log(sheet.getName());
}
getSheets() はスプレッドシートに含まれる全シートを配列で返し、sheet.getName()でそれぞれのシート名を取得する。
なるほど、全シートを取得して、その上でループすれば個々のシート名をログに出力できるんだね!

猫男
応用:GASで全シート名をリストとして集めよう
次のステップとして、GASで全シート名をリスト(配列)にまとめる手法にもトライ!
取得したシート名を配列に格納すれば、後で他の処理に渡せるさ。
const sheetNames = [];
for (let i = 0; i < sheets.length; i++) {
sheetNames.push(sheets[i].getName());
}
Logger.log(sheetNames);
push()を使ってシート名を配列 sheetNames
に追加。
最後にその配列をログに出力すればOK!
これなら、シート名をリスト化して後で使えるから便利そう!

猫男
練習問題
GASを使ってスプレッドシート内の全シート名を取得し、それを昇順でソートしてログに出力するスクリプトを作成してみよう。
解答・解説
function logSortedSheetNames() {
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
const sheets = spreadsheet.getSheets();
const sheetNames = [];
for (let i = 0; i < sheets.length; i++) {
sheetNames.push(sheets[i].getName());
}
sheetNames.sort();
Logger.log(sheetNames);
}
まずスプレッドシートを取得し、getSheets()で全シートを取得。
そのシート名を配列に追加し、sort()で昇順にソート。最後に、Logger.log()で出力する。

catman
これでGASを使って、スプレッドシート内の全てのシート名を効率よく処理できるようになるだろう。頑張るんだ!