Googleスプレッドシート上でセルを更新した場合は、onEditイベントが発生する。
これを利用して、更新したセルに更新日付をメモするGoogle Apps Scriptの例を紹介する。
// セルが更新されたとき更新したセルに更新日付をメモする
function onEdit(e){
// 更新されたセル
const range = e.range;
// 更新セルの文字列を取得
const cellValue = range.getValue();
// 更新セルの文字列が空でないときは更新日時をメモにセット
if(cellValue == ""){ // セルの文字列が空の場合
range.clearNote();
}
else{ // セルの文字列が空でない場合
range.setNote("最終更新日時:" + new Date());
}
}
もし更新したユーザ名もメモに表示させたいなら、range.setNoteの行を以下のようにする。
range.setNote("最終更新日時:" + new Date() + String.fromCharCode(10) + "更新ユーザ:" + e.user);
ちなみに String.fromCharCode(10) は、メモ内で改行しているだけです。
上記のスクリプトでは、更新したセルが空なら(要するにセル内容を消去したら)メモも消去するようにしていますが、セルの内容にかかわらず更新したらメモするには、if文をなくして以下のようにすれば大丈夫です。
// セルが更新されたとき更新したセルに更新日付をメモする
function onEdit(e){
// 更新されたセル
const range = e.range;
// 更新日時をメモにセット
range.setNote("最終更新日時:" + new Date());
}
}
コメント