見出し画像

【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 応用レシピ」を厳選して紹介します。
そのままコピペで使えるように チェック済みコード を掲載しています。

ここから先は

3,996字

¥ 100

応援ありがとうございます!いただいたチップは、学習代として、次の記事づくりのエネルギーにさせていただきます☕✍️ これからも「毎日をちょっとラクにするGAS術」を発信していきます!