【Google Apps Script(GAS)】指定したシート以外を全て削除する

オンラインGAS講座 開講中!
オンライン無料体験あり!
最短4週間でGASをマスターできる
Google Apps Scriptコース』開講中!

今回はGoogle Apps Scriptで指定したシート以外を削除し、1シートだけ残す方法についてご紹介します。
スプレッドシートによるツールを開発する際、マスタシートとそこから起動して生成されるシートがある場合に、
マスタシートは残して生成されたシートはいったん削除したい場合などに便利です。

指定したシート以外を全て削除する

スクリプトを作成する前に、まず下記のようなスプレッドシートを用意します。

シート1、シート2、シート3を用意

シート1、シート2、シート3を用意

その上で、下記のサンプル1を元にご紹介していきます。

・サンプル1

function myFunction() {

var SPREADSHEET_ID = ‘[ここにスプレッドシートのIDを記載]’; //スプレッドシートのIDを指定
var SHEET_NAME = ‘シート2’; //残したいシート名を指定
var sheet = SpreadsheetApp.openById(SPREADSHEET_ID).getSheetByName(SHEET_NAME); //残したいシートと、シートが存在するスプレッドシートを定義
var ash = SpreadsheetApp.getActiveSpreadsheet(); //アクティブなスプレッドシートを取得
var cnt = ash.getNumSheets(); //アクティブなスプレッドシートのシート数を取得

SpreadsheetApp.setActiveSheet(sheet); //指定したシート名をアクティブシートにする

ash.moveActiveSheet(1); //アクティブシートを1番左へ移動

 for(var i = cnt; i >= 2; i–){ //初期値の変数iはシート数を表す変数cnt、iをー1していき2以上の間は処理を繰り返し

var sh = ash.getSheets()[i-1]; //アクティブなスプレッドシートに存在するシートを、[i-1]により配列の要素数で指定して取得し、変数shに代入
  ash.deleteSheet(sh); //シート削除
 
}
}

上記のサンプル1ですが、まず、

var SPREADSHEET_ID = ‘[ここにスプレッドシートのIDを記載]’;

で対象のスプレッドシートのIDを指定し、

var SHEET_NAME = ‘シート2’;

で今回残したいシートの名前を指定します(今回は「シート2」を残す事とします)

var sheet = SpreadsheetApp.openById(SPREADSHEET_ID).getSheetByName(SHEET_NAME);

では、先ほど宣言した変数SPREADSHEET_IDとSHEET_NAMEを使い、残したいシートとシートが存在するスプレッドシートを定義します。

var ash = SpreadsheetApp.getActiveSpreadsheet();

では、アクティブなスプレッドシートを取得し、

var cnt = ash.getNumSheets();

で、アクティブなスプレッドシートに存在するシート数を取得します。

SpreadsheetApp.setActiveSheet(sheet);

では、先ほど指定したシート名をアクティブシートにし、

ash.moveActiveSheet(1);

で、アクティブシートを1番左へ移動します。

for(var i = cnt; i >= 2; i–){

ですが、初期値の変数iはシート数を表す変数cntとし(今回は3になります)、処理を繰り返す毎に変数iをー1していき、変数iが2以上の間は処理を繰り返します。

var sh = ash.getSheets()[i-1];

では、アクティブなスプレッドシートに存在するシートを、[i-1]により配列の要素数で指定して取得し、変数shに代入し、

ash.deleteSheet(sh);

でシートを削除します。
今回の例では、ash.getSheets()[2]とash.getSheets()[1]が削除され、一番左のシートであるash.getSheets()[0]は残るという形になります。

シート1、シート3削除後

シート1、シート3削除後

※スプレッドシートIDの取得方法などについてはこちらの記事をご参照ください。

https://vba-gas.info/category/google-apps-script/gas-sheet

シェアする

  • このエントリーをはてなブックマークに追加

フォローする