【onEdit(e)入門 #3】特定の列や値にだけ反応させるには?
前回までは 「eの中身をログで見てみる」 ところまでやりました。
今回はさらに一歩進んで、「編集された場所や入力された値によって処理を分ける」 方法を解説します。
🔑 ポイント
e.range.getColumn() で「編集された列」を取得できる
e.range.getRow() で「編集された行」を取得できる
e.value で「入力された内容」を取得できる
if文 を使って条件分岐すれば「特定のときだけ動作」させられる
📝 列で制御する
たとえば 「B列が編集されたときだけ処理したい」 場合はこんな感じです。
function onEdit(e) {
var range = e.range; // 編集されたセル
var col = range.getColumn(); // 列番号(1=A列, 2=B列,...)
// B列(=2)が編集されたときだけ処理
if (col === 2) {
Logger.log("B列が編集されました!");
}
}
👉 A列は「1」、C列は「3」というように数値で判定します。
📝 値で制御する
次は 「B列に '完了' と入力されたときだけ動作」 の例です。
function onEdit(e) {
var range = e.range;
var col = range.getColumn();
var val = e.value; // 入力された値
if (col === 2 && val === "完了") {
Logger.log("完了チェックが入りました!");
// ここに処理を追加(例:日付を入れるなど)
}
}
📝 行で制御する
たとえば 「2行目(見出し行)を除外したい」 場合はこんな感じです。
function onEdit(e) {
var range = e.range;
var row = range.getRow(); // 編集された行番号
var col = range.getColumn();
// 2行目は見出しなので無視
if (row === 2) return;
// B列かつ「完了」が入力されたとき
if (col === 2 && e.value === "完了") {
Logger.log("2行目以外で完了チェックが入りました!");
}
}
👉 getRow() を使うと、ヘッダー行を飛ばしたり、特定の範囲だけに限定したりできます。
✅ よくある応用例
チェックボックスにチェックが入ったときだけ動作
特定の列が更新されたらメール送信
「完了」と入力されたら背景色を変える
1行目は見出しなので無視する
データ入力欄(例:3〜100行目)だけを対象にする
⚡ まとめ
列番号 (getColumn()) で場所を指定
行番号 (getRow()) で範囲を制御
入力値 (e.value) で条件を指定
組み合わせると「必要なときだけ自動処理」ができる!
次回は 【onEdit(e)入門 #4 】「複数条件を組み合わせる方法」 を解説予定です。
(例:B列が「完了」かつC列の日付が空欄なら処理する、など)
✍️ この記事が役に立ったら スキ♡ やフォロー していただけると嬉しいです!
シリーズの続きもぜひお楽しみに。
【onEdit(e)応用レシピ集】特定の列・値・行で動作させる実践コード
ここからは 有料エリア です。
実務ですぐ使える「onEdit 応用レシピ」を厳選して紹介します。
そのままコピペで使えるように チェック済みコード を掲載しています。
ここから先は
¥ 100
応援ありがとうございます!いただいたチップは、学習代として、次の記事づくりのエネルギーにさせていただきます☕✍️ これからも「毎日をちょっとラクにするGAS術」を発信していきます!
