fx ट्रिगर और ऑटोमेशन
ENहिन्दी

सिंपल ट्रिगर: onOpen, onEdit

⏱ 15 मिनट

आप क्या सीखेंगे

  • trigger क्या होता है
  • onOpen और onEdit बिना setup के कैसे चलते हैं
  • event object e का इस्तेमाल
  • simple triggers क्या नहीं कर सकते

समझिए

Trigger क्या है?

Trigger किसी घटना पर function को अपने-आप चलाता है — file खुले, cell edit हो, form submit हो, या तय समय आए। Simple triggers सबसे आसान हैं: function को एक तय (reserved) नाम दीजिए, Google उसे चला देगा। कोई setup नहीं।

Function का नाम कब चलता है…
onOpen(e) कोई file खोले (edit access के साथ)
onEdit(e) user किसी cell की value बदले
onSelectionChange(e) user कोई दूसरा cell चुने
onInstall(e) add-on install हो
doGet(e) / doPost(e) web app URL खोला जाए (Module 5)

Menu बनाने के लिए आप onOpen पहले ही इस्तेमाल कर चुके हैं।

onEdit और event object

onEdit चलने पर Google एक event object e देता है जो बताता है कि क्या बदला:

function onEdit(e) {
  const range = e.range;            // the edited cell(s)
  const sheet = range.getSheet();
  console.log(sheet.getName(), range.getA1Notation(), 'old:', e.oldValue, 'new:', e.value);
}

काम की properties:

  • e.range — edit हुई range
  • e.value — नई value (सिर्फ़ एक cell के edit पर)
  • e.oldValue — पुरानी value (सिर्फ़ एक cell के edit पर)
  • e.source — spreadsheet

उदाहरण 1: अपने-आप timestamp

Orders tab में Status column (D) बदले तो column E में तारीख़ और समय लिख दें।

function onEdit(e) {
  const range = e.range;
  const sheet = range.getSheet();

  if (sheet.getName() !== 'Orders') return;   // only this tab
  if (range.getColumn() !== 4) return;        // only column D
  if (range.getRow() === 1) return;           // ignore header

  sheet.getRange(range.getRow(), 5).setValue(new Date());
}

ऊपर की तीन return lines ज़रूरी हैं: onEdit file के हर edit पर चलता है, इसलिए अगर edit आपके काम का नहीं है तो तुरंत बाहर निकलें।

उदाहरण 2: codes को capital letters में करना

function onEdit(e) {
  const r = e.range;
  if (r.getSheet().getName() === 'Stock' && r.getColumn() === 2 && typeof e.value === 'string') {
    r.setValue(e.value.toUpperCase());
  }
}

एक project में एक ही onEdit

onEdit नाम के दो functions नहीं हो सकते। helpers call करके दोनों को जोड़ें:

function onEdit(e) {
  stampStatus(e);
  upperCaseCodes(e);
}

Simple triggers की सीमाएँ

  • Authorization वाली services नहीं: email (GmailApp/MailApp) नहीं भेज सकते, Drive या दूसरी files नहीं छू सकते। Simple triggers user से permission लिए बिना चलते हैं।
  • 30 सेकंड में पूरा होना ज़रूरी।
  • onEdit सिर्फ़ इंसान के edits पर चलता है — scripts के बदलावों, formulas के recalculate होने या form submissions पर नहीं।
  • कई cells में paste करने पर एक ही onEdit call आता है, जिसमें e.range कई cells की होती है (और e.value नहीं होता)।
  • Editor में onEdit पर Run न दबाएँ — e undefined होगा और error आएगा। शीट में edit करके test करें।

Email या Drive चाहिए तो installable trigger लें (अगला lesson)।

मुख्य बातें

  • Function का नाम onOpen या onEdit रखिए, बस चल जाएगा।
  • e.range से देखें कि edit कहाँ हुआ, वरना जल्दी बाहर निकलें।
  • Simple triggers email नहीं भेज सकते और दूसरी files नहीं छू सकते।

अभ्यास

अभ्यासअभ्यास 1

Tasks tab में जब column C का checkbox tick हो (e.value === 'TRUE'), तो column D में Done और column E में आज की तारीख़ लिखिए।

प्रश्नोत्तरी

इनमें से किस पर onEdit नहीं चलेगा? a) user cell में type करे b) user block paste करे c) script setValue करे
script setValue करे
onEdit पर Run दबाने से error क्यों आता है? a) simple triggers बंद हैं b) event object e नहीं मिलता c) शीट lock है
event object e नहीं मिलता
सिंपल ट्रिगर: onOpen, onEdit · हिंदी | ExcelWalaa