文系エンジニアのITヒント集

いろいろメモ書き。tips、便利なアプリ紹介、IT・EC関連情報などなど。

【GAS】スプレッドシート のセルに自動で値を入れる

やりたいこと

概要

スプレッドシート の「課題管理表」をアレンジしたい!

詳細

今日のスケジュールの課題名のところに、今日取り組むものを入れる

▼今日取り組むものの条件
・毎日取り組むもの
・取り組み中のもの

キャプチャ

▼今日のスケジュール
f:id:Uuu1995:20210404110703p:plain ▼課題
f:id:Uuu1995:20210404120119p:plain

コード

function SetTodayTaskName() {
  // 開いている「スプレッドシート」を取得
  var ss = SpreadsheetApp.getActiveSpreadsheet();

  // 課題シートから課題とステータスを取得
  var taskSheet = ss.getSheetByName("課題");
  var taskNamesAndStatuses = taskSheet.getRange(6,2,taskSheet.getLastRow() - 1,2).getValues();

// 今日のスケジュールに転記
  var todayTaskSheet = ss.getSheetByName("今日のスケジュール");
  var copiedRowIndex = 0; //転記した行数
  taskNamesAndStatuses.forEach(function( taskNameAndStatus ){
    var status = taskNameAndStatus[1];
    if(status == "毎日" || status == "取り組み中"){
      todayTaskSheet.getRange(6 + copiedRowIndex,1,1).setValue(taskNameAndStatus[0]);
      copiedRowIndex++;
    }
  });
}

結果

f:id:Uuu1995:20210404120105p:plain

参考

getRangeメソッドについて
https://tonari-it.com/gas-spreadsheet-column-data-array/#toc1