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()で出力する。