📄

Google Spreadsheetで変更を加えた行の更新日を自動更新する

2022/02/13に公開

小ネタです。Spreadsheet でセルの内容を変更した行の更新日を自動更新するようにしたかったのですが、標準機能では実現できなかったためスクリプトにて対応しました。

対象シートのメニューから [拡張機能] - [App Script] でエディタを開き、以下のようなコードを書きます。getRange()の対象列やcurrentRowの判定行はシートの構成によって調整しましょう。

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 > 1) {
    if (currentCell) {
      updateRange.setValue(new Date());
    }
  }
}

プロジェクトのトリガーを追加し、イベントの種類を「編集時」に指定。

セルの内容を更新すると、該当行の「更新日」が本日の日付で自動更新されるようになります。

今回は同一フォーマットの複数シートに対して更新を適用したかったためgetActiveSheet()を使っています。特定のシートのみ対象とする場合はgetSheetByName()で指定したり、フォーマットが異なるシートをgetName()で弾くのが良いかと思います。

Class Spreadsheet  |  Apps Script  |  Google Developers

Discussion