GASでスプレッドシートのシートをコピーする方法(copyToメソッド)
Google Apps Script(GAS)でスプレッドシートにあるシートをコピーする方法を解説します。
GASに用意されているcopyToメソッドを使い、スプレッドシート上のシートをスクリプト実行でコピーする処理が実装できます。
スプレッドシートのシートコピーをGASで実現
スプレッドシートで行われる処理の多くは、Google Apps Script(GAS)によるスクリプトで実行することができます。
セルの読み込み・書き込みなどの各種操作に加えて、スプレッドシートファイルに存在するシートのコピーもGASで実行可能です。
例えば、スプレッドシートに雛形シートを予め用意しておき、GASの処理実行時にシートをコピーして値を入力するといったことができます。
GASのシートコピーはcopyToメソッド
Google Apps Script(GAS)でスプレッドシートのシートをコピーするメソッドとして、copyToメソッドが用意されています。
Sheetオブジェクト.copyTo(コピー先Spreadsheetオブジェクト)
copyToメソッドは、Sheetオブジェクトで実行可能です。
コピーしたいSheetオブジェクトでcopyメソッドを実行すると、実行元のシートがコピーされます。
copyメソッドの引数には、コピー先のスプレッドシートを指定します。
コピーするシートが含まれるスプレッドシートを指定すれば、スプレッドシート内のコピーになります。
異なるスプレッドシートを指定すると、スプレッドシート間のシートのコピーになります。
同一スプレッドシートにシートをコピーするGASサンプルコード
実際にGoogle Apps Script(GAS)でスプレッドシートのシートをコピーするサンプルコードを解説します。
GASサンプルコードを実行すると、スクリプトに紐づいているスプレッドシートのシートが、同じスプレッドシート内でコピーされます。
function sheetCopy() {
//スクリプトに紐付いたスプレッドシートを読み込む
let mySpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
//アクティブなシートをコピー対象のシートとして読み込む
let copySheet = mySpreadsheet.getActiveSheet();
//コピー対象シートを同一のスプレッドシートにコピー
copySheet.copyTo(mySpreadsheet);
}
GASのサンプルコードを実行すると、「コピーしたいシート」シートが、同一スプレッドシート上で、「コピーしたいシート のコピー」としてコピーされます。
デフォルトではコピーしたシート名称はcopyToメソッドでは指定できないため、別途setNameメソッドで付けたい名前に変更する必要があります。
シートを異なるスプレッドシートファイルにコピーするGASサンプルコード
先程は同一スプレッドシート内でシートのコピーを行いましたが、異なるスプレッドシートファイルにシートのコピーするGASサンプルスクリプトも紹介します。
function sheetCopyAnotherFile() {
//スクリプトに紐付いたアクティブなシートをコピー対象のシートとして読み込む
let copySheet = SpreadsheetApp.getActiveSheet();
//シートのコピー先のスプレッドシートを読み込む
let destSpreadsheet = SpreadsheetApp.openById("コピー先のスプレッドシートのID");
//コピー対象シートを同一のスプレッドシートにコピー
let newCopySheet = copySheet.copyTo(destSpreadsheet);
//コピーしたシート名を変更する
newCopySheet.setName("******")
}
copyToメソッドの引数に指定したスプレッドシートにシートがコピーされます。
まとめ・終わりに
今回、Google Apps Script(GAS)でスプレッドシートのシートをコピーする方法を紹介しました。
GASではsheetオブジェクトにcopyToメソッドが用意されていて、引数に指定したスプレッドシートにシートをコピーできます。
シートと同じスプレッドシートも指定できますし、異なるスプレッドシートの指定も可能です。
スプレッドシートのコピーをGASスクリプトで実行したい場合は、紹介したサンプルコードを参考に実装してみてください。
ディスカッション
コメント一覧
まだ、コメントがありません