【onEdit(e)入門 #2】eの中身をログで見てみよう
〜「どのセルが、どう変わったか?」はeに全部入ってる〜
Googleスプレッドシートで「セルを編集したとき」に自動で動く onEdit(e) 関数。
その引数として渡される e(イベントオブジェクト)は、ただの1文字だけど、中身はとっても重要です。
今回の記事では、この「eの中」に何が入っているのか、実際にログで確認しながらひとつひとつ丁寧に解説していきます。
🔧 テスト用スクリプト:eをまるごと見てみよう
function onEdit(e) {
Logger.log(JSON.stringify(e, null, 2));
}
このコードをスプレッドシートの Apps Script に貼って、
任意のセルを編集してみましょう。
その後「表示 → ログ」で出力を確認します。
🔍 実際のログ例(セルC5に「完了」と入力)
{
"authMode": "LIMITED",
"range": {
"columnStart": 3,
"columnEnd": 3,
"rowStart": 5,
"rowEnd": 5,
"getA1Notation": "C5",
"getSheet": {}
},
"source": {},
"value": "完了",
"oldValue": "作業中"
}
🧹 「e」の中身をパーツごとに解説!
🧷 e.authMode(認証モード)
例:"LIMITED"
意味:この関数が「限定的な権限」で実行された、ということ
補足:onEditでは常に"LIMITED"。普段は気にしなくてOK。
🧷 e.range(編集されたセルの情報)
✅ この中に入っているのは…
プロパティ 例 意味 rowStart / rowEnd 5 編集された行番号 columnStart / columnEnd 3 編集された列番号 getA1Notation "C5" 編集されたセルのA1形式の番地 getSheet() {} 編集されたセルの属するシート
🎯 よく使うメソッド
e.range.getRow() // 5
e.range.getColumn() // 3
e.range.getA1Notation() // "C5"
e.range.getSheet().getName() // "シート1"
🧷 e.value(編集後の値)
例:"完了"
意味:セルに新しく入力された値
よくある用途:
特定の文字が入力されたときだけ処理したいとき
if (e.value === "完了") などで条件判定する
🧷 e.oldValue(編集前の値)
例:"作業中"(またはundefined)
注意:元のセルが空白だった場合はundefined
用途例:
if (e.oldValue !== e.value) { // 値が変わったときだけ処理 }
🧷 e.source(Spreadsheet全体)
型:Spreadsheetオブジェクト(SpreadsheetApp.getActiveSpreadsheet() と同じ)
用途:必要に応じて Spreadsheet 全体を操作したいときに使える
例:
const ss = e.source; const sheet = ss.getSheetByName("タスク一覧");
📌 図でまとめるとこう!
e
├─ authMode : "LIMITED"
├─ range
│ ├─ rowStart : 5
│ ├─ columnStart : 3
│ ├─ getA1Notation : "C5"
│ └─ getSheet() → シート情報
├─ value : "完了"
├─ oldValue : "作業中"
└─ source → Spreadsheet全体
💡 よく使うパターン集
条件分岐 書き方 説明 C列だけ反応させたい e.range.getColumn() === 3 A=1, B=2, C=3… 「完了」と入力されたとき e.value === "完了" 入力値の比較 値が変わったときだけ実行 e.oldValue !== e.value 変更検知 「タスク一覧」シートだけ実行 e.range.getSheet().getName() === "タスク一覧" シート名による分岐
✅ まとめ
eオブジェクトには、編集イベントに関するあらゆる情報が入っている
位置(行・列・番地)・内容(新旧の値)・シート名などを取得できる
Logger.log(JSON.stringify(e, null, 2))で構造をしっかり観察しよう!
🖜️ 次回(#3)予告:「特定の列や値にだけ反応させるには?」
今回見た e.range や e.value を使って、次回は
📌「A列だけ」
📌「“完了”と入力されたときだけ」
📌「複数条件を組み合わせて」
といった実用的な 条件付きトリガーの書き方 を紹介していきます。
この記事が「わかりやすかった」「役に立ちそう」と思ったら、 スキ♡やフォローしていただけると励みになります!
次回も、ノンプログラマーでも使えるGASのコツをお届けしていきます!
いいなと思ったら応援しよう!
応援ありがとうございます!いただいたチップは、学習代として、次の記事づくりのエネルギーにさせていただきます☕✍️ これからも「毎日をちょっとラクにするGAS術」を発信していきます!