earthpg:GAS専門のプログラミングスクール

GAS初心者でも簡単!全シート名をループで取得する方法

GASで全シート名をどうやって取得するんだろ?ループで取得する方法がわかればいいんだけど…
猫男
猫男
catman
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
catman
これでGASを使って、スプレッドシート内の全てのシート名を効率よく処理できるようになるだろう。頑張るんだ!