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’セルに書き込みます。必要に応じて処理をカスタマイズしてください。
