2012年7月11日水曜日

シートをコピーする

あるスプレッドシートのシートを別のスプレッドシートにコピーするには、Sheet クラスの copyTo
メソッドを使用する。
  
  
【構文】
SheetObject.copyTo(destination)
  
destination : Spreadsheet 型。コピー先の Spreadsheet オブジェクトを指定。
  
  
コピー先のシート名は指定できないようで、本日時点の仕様では、コピー先のシート名は
  
コピー ~ コピー元のシート名
  
になるようである。また、コピーする位置も指定できない。現時点では、一番先頭にコピー
されるようである。
  
  
以下、アクティブスプレッドシートにある「シート4」を、スプレッドシート「DestSpreadsheet」に
コピーする例を以下に記す。ちなみに、スプレッドシート「DestSpreadsheet」の Id は
  
abcdEFGHijklmnopQrstUvwXYz

であるものとする。


【例1】
function SheetCopySample1() {
  var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var objDestSpreadsheet = SpreadsheetApp.openById(" abcdEFGHijklmnopQrstUvwXYz ");
var objSheet = objSpreadsheet.getSheetByName("シート4");
objSheet.copyTo(objDestSpreadsheet);
}
  
  
実行結果のコピー先のスプレッドシートは下図の通りとなる :
   
  
   
上記の例は、シートを異なるスプレッドシートへコピーする例であったが、同一スプレッド
シート内でのシートのコピーの場合は、copyTo メソッドの引数にコピー元のスプレッド
シートオブジェクトを指定すれば良い。
以下は、そのサンプルコード。
  
   
【例2】
function SheetCopySample2() {
  var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var objSheet = objSpreadsheet.getSheetByName("シート4"); 
  objSheet.copyTo(objSpreadsheet );
}
  
  
実行の結果、アクティブスプレッドシートの先頭に
  
コピー ~ シート4
  
の名前でシートがコピーされる。

0 件のコメント:

コメントを投稿