図のような質問、回答リストを作ることがあると思うのだが、こういった場合、更新した場合にその変化がわかりにくい。そこで、今回はB3のセル~連続して行を更新した際に、最終更新日時をスタンプ(記録)するようにしてみた。
目次
行更新で更新日時のやり方
拡張機能をクリック
Apps Scriptをクリック
<>エディタのコード.gsを選択、以下のコードを図のようにコピーして張り付ける。最後に保存ボタンを押す。
タイトルもわかりやすい名前に更新しておこう「Googleスプレッドシートで質問リストを作った時に行単位で行を更新」という題名にした。
function autoUpdateDate() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var currentRow = sheet.getActiveCell().getRow();
var currentCell = sheet.getActiveCell().getValue();
var updateRange = sheet.getRange("B" + currentRow);
if (currentRow > 2) {
if (currentCell) {
updateRange.setValue(new Date());
}
}
}
B列の2行目より大きい(3行目から)永遠に行更新がある場合に掲載&更新されます。
ケースバイケースでコードの内容を変更してください。
目覚まし時計マークの「トリガー」を選択、右下の「+トリガーの追加」をクリック
図のように設定する
スプレッドシートに戻って、質問欄や回答欄を更新してみましょう。
結果を見る
質問欄や回答欄を更新すると、B3やB6の更新日付に日時が追加されました!
若干タイムラグがあるようです。
今回は同一フォーマットの複数シートに対して更新を適用したかったためgetActiveSheet()
を使っています。特定のシートのみ対象とする場合はgetSheetByName()
で指定したり、フォーマットが異なるシートをgetName()
で弾くのが良いかと思います。
コメント