GASでシートを追加・削除するスクリプトの書き方

先生

GASでシート操作をマスター!追加・削除スクリプトで業務効率UP!

GASでシートを追加する方法

Google Apps Script (GAS) でスプレッドシートに新しいシートを追加する方法はいくつかあります。最も基本的な方法は insertSheet() メソッドを使用することです。

このメソッドは、新しいシートをスプレッドシートの最後に作成します。シートの名前や挿入位置を指定することも可能です。

function addSheet() {
  // スプレッドシートを取得
  var ss = SpreadsheetApp.getActiveSpreadsheet();

  // 新しいシートを追加
  var newSheet = ss.insertSheet();

  // シート名を変更
  newSheet.setName("新しいシート");

  Logger.log('シートが追加されました: ' + newSheet.getName());
}

上記のコードは、アクティブなスプレッドシートに新しいシートを追加し、シート名を「新しいシート」に変更する例です。Logger.log() で追加されたシート名を確認できます。

シートを特定の位置に挿入したい場合は、insertSheet(sheetName, sheetIndex) のように、シート名とインデックスを指定します。インデックスは0から始まるため、0を指定すると最初のシートとして挿入されます。

function addSheetAtIndex() {
  // スプレッドシートを取得
  var ss = SpreadsheetApp.getActiveSpreadsheet();

  // インデックス0の位置に新しいシートを追加
  var newSheet = ss.insertSheet("最初のシート", 0);

  Logger.log('シートが追加されました: ' + newSheet.getName());
}

GASでシートを削除する方法

GASでシートを削除するには、deleteSheet() メソッドを使用します。このメソッドは、削除したいシートのオブジェクトを引数として受け取ります。

function deleteSheet() {
  // スプレッドシートを取得
  var ss = SpreadsheetApp.getActiveSpreadsheet();

  // 削除するシートを取得(シート名で指定)
  var sheetToDelete = ss.getSheetByName("削除するシート");

  // シートが存在するか確認
  if (sheetToDelete) {
    // シートを削除
    ss.deleteSheet(sheetToDelete);
    Logger.log('シートが削除されました: ' + sheetToDelete.getName());
  } else {
    Logger.log('削除するシートが見つかりませんでした。');
  }
}

上記のコードは、「削除するシート」という名前のシートを削除する例です。シートが存在しない場合は、エラーメッセージがログに出力されます。

シートを削除する前に、シートが存在するかどうかを確認することが重要です。存在しないシートを削除しようとすると、エラーが発生します。

エラーハンドリング

シートの追加や削除を行う際には、エラーハンドリングを実装することが重要です。例えば、シート名がすでに存在する場合や、削除しようとしたシートが見つからない場合などが考えられます。

function addSheetWithErrorHandler() {
  try {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    ss.insertSheet("既存のシート");
  } catch (e) {
    Logger.log("エラーが発生しました: " + e);
  }
}

上記の例では、try...catch ブロックを使用してエラーを捕捉しています。insertSheet() メソッドが失敗した場合、catch ブロック内のコードが実行され、エラーメッセージがログに出力されます。

参考リンク

まとめ

GASを使用すると、スプレッドシートのシートを簡単に追加・削除できます。insertSheet() メソッドでシートを追加し、deleteSheet() メソッドでシートを削除できます。エラーハンドリングを実装することで、より堅牢なスクリプトを作成できます。