LANG SELRCT

Apps Script Reference  (Create: Create new Spreadsheet | Create new Apps Script

Thursday, June 23, 2016

編集した日時を自動で入力する

シートを編集した日時を知るには、ファイルメニューの変更履歴の表示を見ることで確認することもできますが、わざわざそれを開かずに、常にシート上に表示して見えるようにしておきたいと思い、Google Apps Scriptを使って書いてみたコードです。

A列の任意のセルを編集した時、B列に自動で編集した日時を入力するということをやっています。
※日時を入力する列にすでにデータが入っている場合は上書きされるので、データが入っていない列を指定して下さい。



ポイント

1. A列が編集されたら、B列に編集した日時を入力する。
  if(col == 1){
    var date = new Date();
    sh.getRange(row, 2).setValue(date);
  }



コード.gs
function onEdit() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sh = ss.getActiveSheet();
    var range = sh.getActiveRange();
    var row = range.getRow();
    var col = range.getColumn();
 
  if(col == 1){
    var date = new Date();
    sh.getRange(row, 2).setValue(date);
  }
}



A列を編集すると、B列に編集した日時が入力されます。

再度同じA列のセルを編集すると、B列の日時が更新されます。



if文を消すと、どの行を編集してもB列に編集日時が更新されるようになります。

コード.gs
function onEdit() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sh = ss.getActiveSheet();
    var range = sh.getActiveRange();
    var row = range.getRow();
    var col = range.getColumn();
 
  //if(col == 1){
    var date = new Date();
    sh.getRange(row, 2).setValue(date);
  //}
}


追記:もっと短く書いてみる
編集した行の10列目に日時を入力する

コード.gs
function onEdit() {
  const col = 10;
  const sheet = SpreadsheetApp.getActiveSheet();
  const row = sheet.getActiveRange().getRow();
  sheet.getRange(row, col).setValue(new Date());
}



指定したシートの指定した行以降のセルが編集された時に実行する

上の例では一行目を編集すると常にB列に日付の更新が入るため、一行目をヘッダにしている場合は二行目からを対象にしたいと思うはず。
そして複数のシートがある場合は、B列を自動で更新されたくないシートもあるはず。
ということで、指定したシートの2行目以降のセルが編集されたら、B列に更新日時を自動入力するというコードも書いてみました。

コード.gs
function onEdit() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sh = ss.getActiveSheet();
    var sh_id = sh.getSheetId();
    var range = sh.getActiveRange();
    var row = range.getRow();
    if (sh_id == 0) {
        if (row > 1) {
            var date = new Date();
            sh.getRange(row, 2).setValue(date);
        }
    }
}


Latest post

Extracting data from Google Sheets with regular expressions

Introduction Regular expressions are a powerful tool that can be used to extract data from text.  In Google Sheets, regular expressions ca...