[GAS] Google Spreadsheet に自動でタイムスタンプを入力する
Google Spreadsheet で特定列に入力があれば、同じ行の別の列に自動でタイムスタンプを入力されるようにしたい。具体的には B 列に何らかの入力があれば A 列にタイムスタンプが入力されるようにする。
以下のページが参考になった。
【GAS@SpreadSheet】自作関数で入力時刻を自動的に入力 – Qiita
https://qiita.com/ringCurrent/items/3a3e82d1e854fdf80957
Google Apps Script (GAS)で編集した時にタイムスタンプを押すスクリプト – hidetoshl.com
https://www.hidetoshl.com/gas-timestamp/
(1)Google Spreadsheet で適当なファイルを新規作成する。
(2)Tools>Script Editor をクリック。スクリプト・エディタが開く。
(3)以下のコードを入力。保存。
1function onEdit() {
2 var ss = SpreadsheetApp.getActiveSpreadsheet();
3 var sh = ss.getActiveSheet();
4 var range = sh.getActiveRange();
5 var row = range.getRow();
6 var col = range.getColumn();
7
8 if(col == 2){ // 2はB列を表す。
9 var time = Utilities.formatDate(new Date(), 'Asia/Tokyo', 'yyyy/MM/dd HH:mm');
10 sh.getRange(row, 1).setValue(time); // 1 はA列を表す。
11 }
12}
Google Spreadsheet に戻り、B 列の適当な行に適当な文字列を入力すると A 列に「2020/05/20 17:24」のようにタイムスタンプが入力されるはずだ。