こんにちは、nishi_talk(@nishi_talk)です。
今回はGoogle Apps Scriptを使用して、スプレッドシートのコピーを作成する方法をご紹介します。
毎月同じテンプレートのシートをGoogle Apps Scriptを使用してシート名を「YYYY年MM月」みたいな感じで毎月作成できるようにします。

/**
* スプレッドシートのコピー作成
*/
function AutoSheetCopy(){
// スプレッドシートを取得
var sheet = SpreadsheetApp.getActiveSpreadsheet();
// コピー元のシートを取得(今回は template というシート)
var templateSheet = sheet.getSheetByName('template');
// シートをコピー
sheet.insertSheet(getmonth(), 0, {template: templateSheet});
}
// 現在の月と週数を取得する関数
function getmonth(){
// 現在の日時を取得
var today = new Date();
// 現在の日時から、月を算出
var out = today.getYear() + "年";
out += (today.getMonth()) + "月";
return out; // yyyy年mm月の文字列を返す
}
まずはテンプレートのシートを作成。シート名を「template」に変更します。
上記のコードを説明します。
シート名が「yyyy年mm月」になるように現在の日時を取得してシート名を設定します。
// 現在の月と週数を取得する関数
function getmonth(){
// 現在の日時を取得
var today = new Date();
// 現在の日時から、月を算出
var out = today.getYear() + "年";
out += (today.getMonth()) + "月";
return out; // yyyy年mm月の文字列を返す
}
変数「out」にyyyy年mm月の文字列が設定されます。
次に、コピー元のシート(template)を取得します。
var templateSheet = sheet.getSheetByName('template');
関数getmonthで取得したyyyy年mm月の文字列をシート名にして、取得したコピー元のシートをコピーします。
sheet.insertSheet(getmonth(), 0, {template: templateSheet});
あとはトリガーの時間設定で、毎月1日に関数AutoSheetCopyが発火するように設定すればOK!
毎月決まったテンプレートのシートを自動的に作成する方法をご紹介しました。