シートをコピーするGASを紹介します。
以下がサンプルコードです。
GASの定期実行によって毎月定期実行することを前提にしています。
週次など変更する場合は、シート名を作成している部分を適宜変更してください。
function copySheet() {
// 1. テンプレートとなるシートを取得
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
const templateSheet = spreadsheet.getSheetByName("テンプレ"); // コピー元のシート名を指定
// 2. 新しいシート名を「YYYY/MM」のフォーマットで翌月になるように設定
const nextMonth = new Date()
nextMonth.setMonth(nextMonth.getMonth() + 1)
const newSheetName = nextMonth.getFullYear() + "/" + ("0" + (nextMonth.getMonth()+1)).slice(-2); // 新しいシート名を作成
// 3. シートをコピー
const newSheet = templateSheet.copyTo(spreadsheet).setName(newSheetName);
// 4. 左から「新しく作成したシート」「テンプレシート」の順になるように並び替える
spreadsheet.setActiveSheet(templateSheet);
spreadsheet.moveActiveSheet(1);
spreadsheet.setActiveSheet(newSheet);
spreadsheet.moveActiveSheet(1);
}
ポイントは次のとおりです。
- コピーしたシートは、末尾(シートが表示されているエリアの右のほう)に追加されます。
- コピーしたシートを便利に使いたい場合は、左に移動させる必要があります。
- 左への移動は
spreadsheet.moveActiveSheet(1)
で行います。