スプレッドシートコピーで間違いやすい2つの方法~duplicate(), copyTo() ~
スプレッドシートをコピーする方法2つあるけど、何が違うの?
スプレッドシートをコピーする方法には以下の2つがあります。
duplicate()
copyTo()
これらにはきちんと違いがあります。片方のみだと、無駄にコードを長く書かなければいけなかったり不都合な点があります。
この記事では、これらの使い方とその違いについて解説していきます。
スプレッドシートをコピーする方法を知らない人は、この2つを使い分けることで、スマートなコードにすることができます!
目次(クリックで読みたい部分にジャンプできます)
スプレッドシートをコピーする2つの方法
スプレッドシートをコピーするのには、次の2つの方法があります。
- アクティブなシートをコピーする〜duplicate()〜
- シートを指定してコピーする〜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)