GoogleAppsScript

【GAS】onEdit(e)の解説|セルが編集された際に自動的に発火するトリガー

oneditの解説

Google Apps Script(GAS)における「onEdit」は、セルが編集された際に自動的に発火するトリガーの一つです。

この機能を利用することで、特定のセルの変更を検知し、自動的な処理を実行することが可能です。

onEditとは?

onEditトリガーは、Google Apps Script(GAS)の一部であり、Googleスプレッドシートなどのアプリ内で、セルの内容が変更された時に自動的に実行される関数です。この機能を使うと、セルの編集に応じて特定の処理を自動化することが可能です。

onEditトリガーの基本

  • 自動実行: スプレッドシート内でセルの値が変更されると、事前に指定した関数が自動的に実行されます。
  • リアルタイム処理: ユーザーの操作と同時に処理が実行され、リアルタイムな反応が可能です。
  • 編集操作の検出: セルの値が変更される操作(入力、削除、コピーなど)を検出して処理を実行します。
  • カスタム処理: セルの変更に応じてカスタム関数を実行し、データの整理、計算、更新などを自動化します。

onEditトリガーでできること

  • データ整理: セルの変更に応じて関連データを整理し、データの正確性を保ちます。
  • 自動計算: セルの内容が変更されたら、関連するセルを自動的に計算して結果を表示します。
  • 通知やアラート: 条件に基づいて通知やアラートを表示したり、メールを自動送信したりします。
  • 外部システム連携: 特定のセル変更をトリガーにして外部システムと連携し、データを送受信します。
  • データ自動入力: 入力パターンに基づいてセルの値を自動的に入力します。

onEditトリガーは、スプレッドシート内のユーザー操作に迅速に反応し、カスタム処理を実行するための強力なツールです。

onEditのシート変更時のGAS実行

シート名の取得と条件判定

シート変更時に実行するGASコード内で、変更されたシートの名前を取得し、特定のシートであるかどうかを判定します。以下のコードを使用してシート名を取得し、判定することができます。

function onSheetEdit(e) {
  let editedSheetName = e.source.getSheetName();
  if (editedSheetName === '特定のシート名') {
    // 特定のシートが変更された場合の処理を記述
  }
}

実行するGASコードの記述

シート変更トリガーが発生した際に実行されるGASコードを記述します。特定のシートが変更された場合に行いたい処理をこの部分に記述します。

function onSheetEdit(e) {
  var editedSheetName = e.source.getSheetName();
  if (editedSheetName === '特定のシート名') {
    // 特定のシートが変更された場合の処理を記述
    // 例: セルに値を書き込む、他のシートとデータを同期させる、メールを送信するなど
  }
}

サンプルコードと具体的な例

以下は特定のシートが変更された際に、指定したセルにメッセージを書き込むサンプルコードです。

function onSheetEdit(e) {
  var editedSheetName = e.source.getSheetName();
  if (editedSheetName === '特定のシート名') {
    var sheet = e.source.getActiveSheet();
    var editedCell = e.range.getA1Notation();
    sheet.getRange('A1').setValue('シートが変更されました。変更されたセル: ' + editedCell);
  }
}

このサンプルコードでは、特定のシートが変更された場合に、その変更が行われたセルの情報を含むメッセージを’A1’セルに書き込みます。必要に応じて処理をカスタマイズしてください。