現在のところ、Google スプレッドシートではセル範囲のロックが許可されていないようですが、代わりにシート全体でシートごとにロックを行う必要があります。別のユーザーとシートを共有し、シート 1 にデータを入力させたいと考えています。改ざんを防ぐために、シート 1 で行われた最後の変更のタイムスタンプを使用して、データをシート 2 に複製 (自分でロック) したいと考えています。この onEdit() 関数で遊んでいますが、シート 1 を編集したときに更新された時刻が表示されませんが、シート 2 を編集した場合にのみ表示されます。何が間違っているのかわかりません。
function onEdit(e)
{
var ss = e.source.getActiveSheet();
var rr = e.source.getActiveRange();
//comment 2 lines below if you want it working on all sheets, not just on 2nd one
if(ss.getIndex()!= 2)
return;
///
var firstRow = rr.getSheetByName(Sheet2).getRow();
var lastRow = rr.getSheetByName(Sheet2).getLastRow();
//the last modified date will appear in 12th column
for(var r=firstRow; r<=lastRow; r++)
ss.getRange(r, 12).setValue(new Date());
}
これを行う別の方法はありますか?