Google Apps Script (GAS)で編集した時にタイムスタンプを押すスクリプト

GoogleスプレッドシートやGoogleフォームで大活躍するGoogle Apps Script(GAS)。チームのタスク管理でも使えるGASコードをメモがてら紹介します。

やりたいこと

下の画像のような、タスクとそれらのステータス列があり、ステータスを「完了」に変更すると、完了日時の列に自動でタイムスタンプを押したい。

実装

1. スクリプトエディタを立ち上げ

「ツール > スクリプトエディタ」で立ち上げられます。

2. コーディング

/**
 * ステータスの変更時にタイムスタンプを押す処理
 */
function setTimeStamp() {

  // 定義
  const TARGET_COLUMN = 'd';   // タイムスタンプを押す列(D列)
  const STATUS_DONE   = '完了'; // 完了ステータス

  // シート定義
  var ss     = SpreadsheetApp.getActiveSpreadsheet(); // 編集したスプレッドシート
  var sheet  = ss.getActiveSheet();                   // 編集したシート(タブ)
  var range  = sheet.getActiveRange();                // 編集した範囲
  var col    = range.getColumnIndex();                // 編集した列
  var row    = range.getRowIndex();                   // 編集した行
  var value  = range.getValue();                      // 編集した値
  
  // 現在時刻
  var currentTime  = Utilities.formatDate(new Date(), 'Asia/Tokyo', 'yyyy/MM/dd HH:mm');
  
  if(col == 3) { // 編集した列がステータス列(3列目)の場合
    if(value == STATUS_DONE) { // 編集したステータスが「完了」の場合
      // タイムスタンプを押す
      ss.getRange(TARGET_COLUMN + row).setValue(currentTime);
      return;
    }
  }
}

トリガー設定手順

1. 「現在のプロジェクトのトリガー」をクリック

2. 「トリガーを追加」をクリック

3. トリガー設定を入力し、保存

4. Googleアカウントにログイン

ログインしていても再度聞かれると思います。

5. 「詳細」クリック > 「◯◯(安全ではないページ)に移動」をクリック

「このアプリは確認されていません」という注意喚起のようなページが表示されますが、左下の「詳細」をクリックした後、
「◯◯(安全ではないページ)に移動」をクリックしましょう。

6. 「許可」をクリックして完了!

検証

実際にシートでステータスを変更して、無事成功!
しっかりタイムスタンプが押されました!

コメントを残す