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

猫男

catman
よし、catmanが「GASで全シート名をループで取得する方法」についておしえてやる!
GASで全シート名を取得する基本
GAS(Google Apps Script)を使えば、スプレッドシート内の全てのシート名を簡単に取得できるんだ。まずは、全シート名をループで取得するための基礎から確認しよう。
スプレッドシートを取得する
GASでは、まず対象となるスプレッドシートを取得しなければならない。SpreadsheetApp.getActiveSpreadsheet()を使えば簡単さ。
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
✅ 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()でそれぞれのシート名を取得する。
なるほど、全シートを取得して、その上でループすれば個々のシート名をログに出力できるんだね!

猫男
全シート名をリストとして集める
次のステップとして、全シート名をリスト(配列)にまとめる手法にもトライしてみよう。
シート名を配列に格納する
取得したシート名を配列に格納することで、後で他の処理に渡すこともできる。
const sheetNames = [];
for (let i = 0; i < sheets.length; i++) {
sheetNames.push(sheets[i].getName());
}
Logger.log(sheetNames);
✅ sheetNames.push()を使ってシート名を配列に追加、最後にその配列をログに出力すれば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を使って、スプレッドシート内の全てのシート名を効率よく処理できるようになるだろう。頑張るんだ!