Google Spreadsheetでアクティブなシートを複製する方法【GASの関数duplicateActiveSheetを使ってみた】

Google Spreadsheetでアクティブなシートを複製したいときに便利な関数があります。それは、duplicateActiveSheetという関数です。この関数は、Google Apps Script(GAS)のスプレッドシートクラスに属するメソッドで、アクティブなシートをコピーして新しいシートを作成します。この関数は、スプレッドシートに複数のシートがある場合にのみ使用できます。スプレッドシートにシートが一つしかない場合は、エラーが発生します。

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

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

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

var sheet = spreadsheet.duplicateActiveSheet();

ここで、spreadsheetはスプレッドシートオブジェクトで、SpreadsheetApp.getActiveSpreadsheet()などで取得できます。sheetは新しく作成されたシートオブジェクトで、アクティブなシートのコピーです。この関数は、アクティブなシートを複製した後に、新しいシートオブジェクトを返します。この関数には引数がありません。

duplicateActiveSheet関数でアクティブなシートを複製するプログラムサンプルとその結果

では、実際にduplicateActiveSheet関数でアクティブなシートを複製するプログラムを書いてみましょう。以下のようなスプレッドシートを用意します。

このスプレッドシートで、アクティブなシートを複製するプログラムは以下のようになります。

function duplicateActiveSheet() {
  // スプレッドシートオブジェクトを取得
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  // アクティブなシートを複製
  var sheet = spreadsheet.duplicateActiveSheet();
  // 複製したシートの名前を取得
  var name = sheet.getSheetName();
  // メッセージでシートの名前を表示
  Browser.msgBox("新しいシート「" + name + "」を作成しました");
}

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

まとめ

この記事では、Google Spreadsheetでアクティブなシートを複製する方法について紹介しました。duplicateActiveSheet関数を使えば、アクティブなシートをコピーして新しいシートを作成することができます。この関数は、Google Apps Script(GAS)のスプレッドシートクラスに属するメソッドで、アクティブなシートを複製した後に、新しいシートオブジェクトを返します。この関数には引数がありません。詳細は、公式ドキュメントを参照してください。

参考文献

GASをイチから学びたい方へ

このブログでは断片的な説明になってしまっていますが、本書は幅広いGASの内容が網羅的に学べる本です。イチから学びたい方は是非読んでみてください。

すでにGASをある程度マスターした方にも辞書的に手元に置いておくと便利です。