Google Spreadsheetでシートを削除する方法【GASの関数deleteSheetを使ってみた】

Google Spreadsheetでシートを削除したいときに便利な関数があります。それは、deleteSheetという関数です。この関数は、Google Apps Script(GAS)のスプレッドシートクラスに属するメソッドで、指定したシートをスプレッドシートから削除します。この関数は、スプレッドシートに複数のシートがある場合にのみ使用できます。スプレッドシートにシートが一つしかない場合は、エラーが発生します。

💡この記事でわかること
  • deleteSheet関数の基本的な構文と引数の意味
  • deleteSheet関数でシートを削除するプログラムサンプルとその結果
  • deleteSheet関数でエラーが発生する場合の対処法

deleteSheet関数の基本的な構文と引数の意味

deleteSheet関数の基本的な構文は以下のとおりです。

var spreadsheet = spreadsheet.deleteSheet(sheet);

ここで、spreadsheetはスプレッドシートオブジェクトで、SpreadsheetApp.getActiveSpreadsheet()などで取得できます。sheetは削除したいシートオブジェクトで、spreadsheet.getSheetByName(name)などで取得できます。この関数は、シートを削除した後に、同じスプレッドシートオブジェクトを返します。この関数には引数が一つあります。

deleteSheet関数でシートを削除するプログラムサンプルとその結果

では、実際にdeleteSheet関数でシートを削除するプログラムを書いてみましょう。以下のようなスプレッドシートを用意します。

このスプレッドシートで、シート名が「削除したいシート」のシートを削除するプログラムは以下のようになります。

function deleteSheet() {
  // スプレッドシートオブジェクトを取得
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  // シート名が「削除したいシート」のシートオブジェクトを取得
  var sheet = spreadsheet.getSheetByName("削除したいシート");
  // deleteSheetメソッドでシートを削除
  spreadsheet.deleteSheet(sheet);
}

このプログラムを実行すると、以下のようにスプレッドシートが変更されます。

deleteSheet関数でエラーが発生する場合の対処法

deleteSheet関数は、スプレッドシートにシートが一つしかない場合には使用できません。この場合は、エラーが発生します。例えば、以下のようなスプレッドシートで、deleteSheet関数を実行すると、以下のようなエラーメッセージが表示されます。

Exception: You can't remove the last sheet in a document.

このような場合は、スプレッドシートに新しいシートを追加してから、deleteSheet関数を実行する必要があります。例えば、以下のようなプログラムを書くと、エラーを回避できます。

function deleteSheet() {
  // スプレッドシートオブジェクトを取得
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  // スプレッドシートに含まれるシートの数を取得
  var sheetCount = spreadsheet.getNumSheets();
  // シートが一つしかない場合は、新しいシートを追加
  if (sheetCount == 1) {
    spreadsheet.insertSheet();
  }
  // シート名が「削除したいシート」のシートオブジェクトを取得
  var sheet = spreadsheet.getSheetByName("削除したいシート");
  // deleteSheetメソッドでシートを削除
  spreadsheet.deleteSheet(sheet);
}

まとめ

この記事では、Google Spreadsheetでシートを削除する方法について紹介しました。deleteSheet関数を使えば、指定したシートをスプレッドシートから削除することができます。この関数は、Google Apps Script(GAS)のスプレッドシートクラスに属するメソッドで、シートを削除した後に、同じスプレッドシートオブジェクトを返します。この関数には引数が一つあります。ただし、スプレッドシートにシートが一つしかない場合は、エラーが発生するので注意が必要です。詳細は、公式ドキュメントを参照してください。

参考文献

PR

未経験からSNSデザインを学び、在宅ワークで収入を得たい方へ。
Flap DESIGNは、デザインスキルから案件獲得までを徹底サポートするオンラインスクールです。現役プロがマンツーマンで指導するため、挫折しにくい環境が強み。
さらに、受講期間中に案件を獲得できなかった場合は、売上が立つまで営業サポート期間を延長する「売上保証制度」も魅力です。
副業として月8〜20万円を目指したい会社員の方、出産・育児を機に新しい働き方を求める方、フリーランスとして独立を目指す方など、ライフスタイルに合わせた働き方を実現したい方にぴったりのサービスです。まずは無料相談で詳細を聞いてみませんか?

未経験から始める!SNSデザインスクール