本記事では、GASを使ってスプレッドシートのシートをコピーする方法を解説していきます。
シートのコピーは手作業でも時間はかかりませんが、毎日のルーティンワークになっているケースも多くGASを利用することで手を一切動かさずに自動化させることができます。
コピーしたシート名を変更する方法も合わせて解説しているので、ぜひ参考にしてみてください。
目次
GASでシートをコピーするサンプル
GASでシートをコピーする前に、コピー元となるシートを用意しておかなければいけません。
今回は以下のようなシートをテンプレとして作成しておきます。シート名はわかりやすく「コピー元」としておきましょう。内容は適当なもので大丈夫です。
それでは、実際にスクリプトを記述していきます。今回、同じスプレッドシート内にコピーする方法と違うスプレッドシートにコピーする方法の2パターンのスクリプトを用意しました。
同じスプレッドシート内にコピーするスクリプト
function sheetCopy() {
// 紐づいているスプレッドシートを取得
const ss = SpreadsheetApp.getActiveSpreadsheet();
// コピー元のシートを取得
const templateSheet = ss.getSheetByName('コピー元');
// コピー処理
templateSheet.copyTo(ss);
}
違うスプレッドシートにコピーするスクリプト
function sheetCopy() {
// 紐づいているスプレッドシートを取得
const ss = SpreadsheetApp.getActiveSpreadsheet();
// コピー元のシートを取得
const templateSheet = ss.getSheetByName('コピー元');
// コピー先のシートを指定
const copyToSheet = SpreadsheetApp.openByUrl("コピー先のシートURLを入力");
templateSheet.copyTo(copyToSheet);
}
【応用】コピーしたシート名を変更する
copyToメソッドを使ってスプレッドシートのシートをコピーすることができました。
しかし、今のままではコピーしたシート名が「◯◯のコピー」となってしまい毎回修正が必要です。コピーしたシート名の変更までGASで自動化させてしまいましょう。
シート名を変更するにはsetNameメソッドを使用します。
function sheetCopy() {
// 紐づいているスプレッドシートを取得
const ss = SpreadsheetApp.getActiveSpreadsheet();
// コピー元のシートを取得
const templateSheet = ss.getSheetByName('コピー元');
// コピー処理
templateSheet.copyTo(ss).setName('名前変更')
}
まとめ
今回は、GASでスプレッドシートのシートをコピーする方法を解説しました。コピーなどのシート操作は、GASで自動化する基本中の基本です。
シートのコピーなど毎回決まった作業がある場合は、ぜひGASを使って効率化を図りましょう。