GAS アクティブなスプレッドシートを削除する

GAS アクティブなスプレッドシートを削除する

GAS(Google Apps Script)で、アクティブなスプレッドシートを削除する手順を記述してます。「deleteActiveSheet()」を使用すれば削除できますが、シートが1つしかとないと削除できずにエラーとなります。

環境

  • OS windows11 home
  • ブラウザ chrome 107.0.5304.63

アクティブなスプレッドシートを削除

アクティブなスプレッドシートを削除には、「deleteActiveSheet」を使用します。

deleteActiveSheet()

以下のシートの、「シート1」をアクティブにして削除してみます。

コードを実行します。

function myFunction() {

  // アクティブなシートを削除
  SpreadsheetApp.getActiveSpreadsheet().deleteActiveSheet();

}

削除されていることが確認できます。

シートが1つしかない場合

シートが1つしかない場合は、削除されずにエラーが発生します。

エラー	
Exception: ドキュメント内のシートをすべて削除することはできません。

エラー画像

実行する前にシート数を取得して、1より大きければ実行するようにすればエラーは回避できます。

function myFunction() {

  // シート数を取得
  let num = SpreadsheetApp.getActiveSpreadsheet().getNumSheets();

  // シート数が1つ以上の場合
  if (num > 1) {

    // 削除
    SpreadsheetApp.getActiveSpreadsheet().deleteActiveSheet();

  }

}