Googleのスプレッドシートを使っています。まず2023年03月というシートがあります。A1には、シート名が同じ2023年03月が入ります。ボタンをおした時に、このシートが複製されて、シート名が2023年04月と、次の月の名前に変わり、なおかつA1も2023年04月となるようなGASのコードを教えてください。

function copySheet() {
  // コピー元のスプレッドシートとシートを取得
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  // シート名とA1セルの値を取得
  var sheetName = sheet.getName();
  var cellValue = sheet.getRange(“A1”).getValue();
  // 年と月を分割して数値に変換
  var year = Number(sheetName.slice(0,4));
  var month = Number(sheetName.slice(5,7));
 // 年と月を分割して数値に変換
var year = parseInt(sheetName.slice(0,4));
var month = parseInt(sheetName.slice(5,7));
  // 次の月の年と月を計算
  var nextYear = year;
  var nextMonth = month + 1;
  // 次の月が13になったら年を増やして月を1にする
  if (nextMonth == 13) {
    nextYear++;
    nextMonth = 1;
  }
  // 年と月を文字列に変換して結合
  var nextSheetName = String(nextYear) + “年” + String(nextMonth) + “月”;
   // コピー先のスプレッドシートとファイルIDを取得
   var target = SpreadsheetApp.openById(“ファイル名”);
   // シートをコピーして名前を変更
   var copy = sheet.copyTo(target);
   copy.setName(nextSheetName);
   // A1セルの値も変更
   copy.getRange(“A1”).setValue(nextSheetName);
}

投稿者 jamd

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください