aaaiiuie

学習(備忘録)のため運用

スプレッドシートで作った質問表、書いた時に日付列を更新してみる

急ぎ質問表なるのものを作る必要があったが、日付入力するのがだるいので質問した日と回答した日が自動で入るようにした。

実際の質問表

質問表
f:id:arakakikikaku427821:20200305120503p:plain

手順

スクリプト

スプレッドシートのツールからスクリプトエディタを起動し以下のコードを書く。 値は適宜修正。

function insertLastUpdated() {
  var ss = SpreadsheetApp.getActiveSpreadsheet(); //現在触っているファイルを取得
  var sheet = ss.getSheetByName('issue'); //対象のシート名を指定
  var currentRow = sheet.getActiveCell().getRow(); //アクティブなセルの行番号を取得
  var currentCol = sheet.getActiveCell().getColumn(); //アクティブなセルの列番号を取得
  var currentCell = sheet.getActiveCell().getValue(); //アクティブなセルの入力値を取得
  var updateRangeQuestion = sheet.getRange('B' + currentRow); //質問の列
  var updateRangeAnswer = sheet.getRange('J' + currentRow); //回答の列
  
  if (currentRow > 1) {
    if(currentCell) {
      if (currentCol == 4) {
        updateRangeQuestion.setValue(dateFormat());
      } else if (currentCol == 11) {
        updateRangeAnswer.setValue(dateFormat());
      }
    }
  }
}

function dateFormat() {
  var now = new Date();
  var year = now.getFullYear();
  var month = now.getMonth()+1;
  var date = now.getDate();
  var hour = now.getHours();
  var minute = now.getMinutes();
  var second = now.getSeconds();
  var nowDate = year + "/" + month + "/" + date + " " + hour + ":" + minute;
  return nowDate;
}

トリガー

忘れがちだが、これ設定しないといけない。

メニューから「現在のプロジェクトのトリガー」を選択。

メニュー→現在のプロジェクトのトリガー
f:id:arakakikikaku427821:20200305120515p:plain

以下の内容で設定する。

トリガーの設定内容
f:id:arakakikikaku427821:20200305120508p:plain