スプレッドシートコピーで間違いやすい2つの方法~duplicate(), copyTo() ~

スプレッドシートをコピーする方法2つあるけど、何が違うの?

スプレッドシートをコピーする方法には以下の2つがあります。

duplicate()

copyTo()

これらにはきちんと違いがあります。片方のみだと、無駄にコードを長く書かなければいけなかったり不都合な点があります。

この記事では、これらの使い方とその違いについて解説していきます。

あべべ

スプレッドシートをコピーする方法を知らない人は、この2つを使い分けることで、スマートなコードにすることができます!

スプレッドシートをコピーする2つの方法

スプレッドシートをコピーするのには、次の2つの方法があります。

  1. アクティブなシートをコピーする〜duplicate()〜
  2. シートを指定してコピーする〜copyTo()〜

これら2種類について解説していきます。

アクティブなシートをコピーする duplicate()

アクティブなシートをコピーする時には、duplicate()を用います。

以下のコードで、アクティブなシートをコピーすることができます。

function myFunction() {

  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  spreadsheet.duplicateActiveSheet();

  //名前を設定したい場合
  //spreadsheet.duplicateActiveSheet().setName("名前");
}

アクティブなシートをコピーするので、今操作しているシートをコピーすることができます。

今、操作しているシートをコピーしたいときに使える関数です!

あべべ

では、シートを指定したい場合はどうすればいいでしょうか??

シートを指定してコピーする copyTo()

今操作していないシートを指定してコピーしたい場合もありますよね。

そんなときは、copyToを使用します。

function myFunction() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheetToDuplicate = spreadsheet.getSheetByName('シート1'); // 複製したいシート名を指定する。
  var newSheet = sheetToDuplicate.copyTo(spreadsheet);

  // 名前を設定したい場合↓
  // newSheet.setName('新しいシート名'); 
}

シート名を指定して、コピーを行なっています。

copyToの引数には、SpreadsheetApp.getActiveSpreadsheet();を指定する必要があります。

まとめ

今回は、シートをコピーする方法について解説しました。

では、良い自動化ライフを!

(Visited 267 times, 1 visits today)