Google apps scriptでスプレッドシートを複製する

Google apps scriptでスプレッドシートを複製するには

  • duplicateActiveSheet()

を使う。

・duplicateActiveSheet()
アクティブシートを複製し、アクティブシートにします。

戻る
Sheet – 新しいシート

参照:spreadsheet#duplicateactivesheet

Google apps scriptでスプレッドシートを複製するスクリプト

アクティブシートをそのまま複製。複製されたシートはアクティブシートの右側に「シート名+のコピー」と表示される。

/*シートを複製*/
function shthukusei() {
 
 //スプレッドシートAppを取得
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 
 //シートを複製
 ss.duplicateActiveSheet();
 
}

 

Google apps scriptでスプレッドシートを複製してシート名を変更する

複製したシートの名前を「新シート100」に変更する。

/*複製したシートに名前を指定する*/
function sheethukusei2(){

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

//シートの名前を新シート100に
var sht = ss.renameActiveSheet('新シート100');

//複製したシートの名前を「新シート」に
ss.duplicateActiveSheet().setName('新シート');

}

この場合、複製したシートの名前で既存があるとエラーになる。

 

Google apps scriptでスプレッドシートを複製|同じシートがあったら終了する

複製したシート名が既存であれば削除するスクリプト。if関数を使ってる。

/*ドキュメントの名前を変更して複製する*/
function shtrenamehukusei(){

//スプレッドシートAppを取得
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 
//新シートをshtnameに定義
 var shtname = "新シート"
 
//shtnameをshtに格納
 var sht = ss.getSheetByName(shtname);

//既に同じシート名(sht)があったら削除//
if(!sht){

Browser.msgBox('シートを複製して新シートに命名します');

//複製したシートの名前を変更する
ss.duplicateActiveSheet().setName('新シート');

//そうでなかったら同じシートを削除する
}else{

Browser.msgBox('新シートがあるから削除します');
ss.deleteSheet(sht);//shtを削除
return;
}
}

 

Google apps scriptでスプレッドシートを複製するsample

 

まとめ

sheetオブジェクト.duplicateActiveSheet()だけで複製出来るのでとても便利で簡単なメソッド。だけどアクティブシートを続けて複製していると、

  • シート名+のコピー
  • シート名+のコピーのコピー
  • シート名+のコピーのコピーのコピー。。。

と続くので、ifと併用がオススメ。

>>スプレッドシートを取得する

>>スプレッドシートのシートを削除する

>>スプレッドシート内の指定したシートをアクティブにする

>>スプレッドシートのシートを選択する

>>スプレッドシートの全てのシートを取得する