[GAS][スプレッドシート]行ごとに更新日時を挿入するには: 逆引きGoogle Apps Script

2012 年 7 月 1 日 日曜日

以下のような表において、それぞれの行が更新されるたびに、行末尾に更新日時を挿入するサンプルスクリプト。

1
2
3
4
5
6
7
function insertLastUpdated() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var currentRow = sheet.getActiveCell().getRow();
  if(currentRow>1){
    sheet.getRange('C' + currentRow).setValue(new Date());
  }
}

サンプルスクリプトの解説

行3:更新日時を挿入する場所を判断するため、あらかじめアクティブセル(カーソルがあたっているセル)の行番号を取得している。

行4:ヘッダー行には挿入しないので、条件分岐。

行5:値をセットする場合は、まず対象となるセルの範囲をRangeオブジェクトとして取得してから、そのオブジェクトに対してsetValue()する。ここでは、new Date()をセットすることにより、現在の日時をセットしている。

トリガーの設定

「リソース » 現在のスクリプトのトリガー」でトリガーの設定ダイアログを表示し、今回作成したメソッドをonEditイベントで実行するようにする。

こうすることにより、セルの値が書き換えられるたびに、更新のあったセルの行番号を特定し、その位置に対して更新日時を挿入している。

関連記事

コメントをどうぞ

トラックバック

このエントリーのトラックバックURL:

http://www.bmoo.net/archives/2012/07/314153.html/trackback