Googleスプレッドシートで作業を行っているときに、複数のシートをまとめて削除したいということが時々あります。
そんなときに使えるGAS(Google Apps Script)でスクリプトを作ってみました。
アクティブなシートだけにするサンプルスクリプト
以下のようなスクリプトで、アクティブなシートだけを残して、他のシートをすべて削除することができます。
var bk = SpreadsheetApp.getActiveSpreadsheet();
var cnt = bk.getNumSheets();
bk.moveActiveSheet(1);
for(var i = cnt; i >= 2; i--){
var sh = bk.getSheets()[i-1];
bk.deleteSheet(sh);
}
アクティブなシートだけにするExcelマクロをご紹介していますが、それのGoogleスプレッドシート版です。
サンプルスクリプトの解説
まず、Spreadsheet.getNumSheet()メソッドでシートの枚数を取得して、
var cnt = bk.getNumSheets();
Spreadsheet.moveActiveSheet()メソッドで残しておきたいアクティブなシートを先頭・一番左に移動し、
bk.moveActiveSheet(1);
カウンタ変数の初期値をシートの総数、最終値を2として、増分値を「-1」としてfor文を回し、
for(var i = cnt; i >= 2; i--){
Spreadsheet.getSheets()メソッドで一番右のシートから、左に向かって順番に取得して、
var sh = bk.getSheets()[i-1];
Spreadsheet.deleteSheet()メソッドで削除を行っています。
bk.deleteSheet(sh);
Home » Googleスプレッドシートの使い方 » アクティブシートのみ残して全シートを削除するGoogle Apps Script