Home » Googleスプレッドシートの使い方 » アクティブシートのみ残して全シートを削除するGoogle Apps Script

アクティブシートのみ残して全シートを削除するGoogle Apps Script

対象:Googleスプレッドシート & Google Apps Script

Googleスプレッドシートで作業を行っているときに、複数のシートをまとめて削除したいということが時々あります。

そんなときに使えるGAS(Google Apps Script)でスクリプトを作ってみました。

[スポンサードリンク]

アクティブなシートだけにするサンプルスクリプト

以下のようなスクリプトで、アクティブなシートだけを残して、他のシートをすべて削除することができます。

function delete_sheets_without_activesheet(){

 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

「Googleスプレッドシートの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.