Google Spreadsheetでアクティブなシートを削除したいときに便利な関数があります。それは、deleteActiveSheetという関数です。この関数は、Google Apps Script(GAS)のスプレッドシートクラスに属するメソッドで、アクティブなシートを削除します。この関数は、スプレッドシートに複数のシートがある場合にのみ使用できます。スプレッドシートにシートが一つしかない場合は、エラーが発生します。
- deleteActiveSheet関数の基本的な構文と引数の意味
- deleteActiveSheet関数でアクティブなシートを削除するプログラムサンプルとその結果
- deleteActiveSheet関数でエラーが発生する場合の対処法
deleteActiveSheet関数の基本的な構文と引数の意味
deleteActiveSheet関数の基本的な構文は以下のとおりです。
var spreadsheet = spreadsheet.deleteActiveSheet();
ここで、spreadsheetはスプレッドシートオブジェクトで、SpreadsheetApp.getActiveSpreadsheet()などで取得できます。この関数は、アクティブなシートを削除した後に、同じスプレッドシートオブジェクトを返します。この関数には引数はありません。
deleteActiveSheet関数でアクティブなシートを削除するプログラムサンプルとその結果
では、実際にdeleteActiveSheet関数でアクティブなシートを削除するプログラムを書いてみましょう。以下のようなスプレッドシートを用意します。
このスプレッドシートで、アクティブなシート(「シート1」)を削除するプログラムは以下のようになります。
function deleteSheet() {
// スプレッドシートオブジェクトを取得
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
// アクティブなシートを削除
spreadsheet.deleteActiveSheet();
}
このプログラムを実行すると、以下のようにスプレッドシートが変更されます。
deleteActiveSheet関数でエラーが発生する場合の対処法
deleteActiveSheet関数は、スプレッドシートにシートが一つしかない場合には使用できません。この場合は、エラーが発生します。
Exception: You can't remove the last sheet in a document.
このような場合は、スプレッドシートに新しいシートを追加してから、deleteActiveSheet関数を実行する必要があります。例えば、以下のようなプログラムを書くと、エラーを回避できます。
function deleteSheet() {
// スプレッドシートオブジェクトを取得
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
// スプレッドシートに含まれるシートの数を取得
var sheetCount = spreadsheet.getNumSheets();
// シートが一つしかない場合は、新しいシートを追加
if (sheetCount == 1) {
spreadsheet.insertSheet();
}
// アクティブなシートを削除
spreadsheet.deleteActiveSheet();
}
まとめ
この記事では、Google Spreadsheetでアクティブなシートを削除する方法について紹介しました。deleteActiveSheet関数を使えば、アクティブなシートを削除することができます。この関数は、Google Apps Script(GAS)のスプレッドシートクラスに属するメソッドで、アクティブなシートを削除した後に、同じスプレッドシートオブジェクトを返します。この関数には引数はありません。ただし、スプレッドシートにシートが一つしかない場合は、エラーが発生するので注意が必要です。詳細は、公式ドキュメントを参照してください。
参考文献
https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet?hl=ja#deleteactivesheet
このブログでは断片的な説明になってしまっていますが、本書は幅広いGASの内容が網羅的に学べる本です。イチから学びたい方は是非読んでみてください。
すでにGASをある程度マスターした方にも辞書的に手元に置いておくと便利です。