LoginSignup
1
2

More than 1 year has passed since last update.

GASでテンプレートのシートを月次でコピーする

Posted at

シートをコピーする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) で行います。
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2