Google Workspace में कस्टम मेन्यू का इस्तेमाल करना

स्क्रिप्ट, यूज़र-इंटरफ़ेस एलिमेंट जोड़कर Google के कुछ प्रॉडक्ट की पहचान कर सकती हैं. इन एलिमेंट पर क्लिक करने से, Apps Script फ़ंक्शन चालू हो जाता है. इसका सबसे सामान्य उदाहरण है, Google Docs, Sheets, Slides या Forms में कस्टम मेन्यू आइटम से स्क्रिप्ट चलाना. हालांकि, Google Sheets में इमेज और ड्रॉइंग पर क्लिक करके भी स्क्रिप्ट फ़ंक्शन ट्रिगर हो सकते हैं.

Google Docs, Sheets, Slides या Forms में कस्टम मेन्यू

Apps Script में, Google Docs, Sheets, Slides या Forms में नए मेन्यू जोड़े जा सकते हैं. इसमें हर मेन्यू आइटम, स्क्रिप्ट के फ़ंक्शन से जुड़ा होता है. (Google Forms में, कस्टम मेन्यू सिर्फ़ ऐसे एडिटर को दिखता है जो फ़ॉर्म में बदलाव करके उसे खोलता है, न कि ऐसे उपयोगकर्ता को जो जवाब देने के लिए फ़ॉर्म खोलता है.)

स्क्रिप्ट सिर्फ़ तब मेन्यू बना सकती है, जब वह दस्तावेज़, स्प्रेडशीट या फ़ॉर्म से बाइंड हो. उपयोगकर्ता के फ़ाइल खोलने पर मेन्यू दिखाने के लिए, onOpen() फ़ंक्शन में मेन्यू कोड लिखें.

नीचे दिए गए उदाहरण में एक आइटम के साथ मेन्यू जोड़ने का तरीका बताया गया है. इसके बाद विज़ुअल सेपरेटर, फिर सब-मेन्यू जोड़ा गया है, जिसमें कोई दूसरा आइटम है. (ध्यान दें कि Google Sheets में, जब तक आपनए वर्शन का इस्तेमाल नहीं कर लेते, आपको इसके बजाय addMenu() सिंटैक्स का इस्तेमाल करना होगा. सब-मेन्यू का इस्तेमाल नहीं किया जा सकता.) जब उपयोगकर्ता किसी मेन्यू आइटम को चुनता है, तो उससे जुड़ा फ़ंक्शन एक सूचना वाला डायलॉग खोलता है. आप जिस तरह के डायलॉग खोल सकते हैं उनके बारे में ज़्यादा जानकारी के लिए, डायलॉग और साइडबार का गाइड देखें.

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  // Or DocumentApp or FormApp.
  ui.createMenu('Custom Menu')
      .addItem('First item', 'menuItem1')
      .addSeparator()
      .addSubMenu(ui.createMenu('Sub-menu')
          .addItem('Second item', 'menuItem2'))
      .addToUi();
}

function menuItem1() {
  SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
     .alert('You clicked the first menu item!');
}

function menuItem2() {
  SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
     .alert('You clicked the second menu item!');
}

दस्तावेज़, स्प्रेडशीट, प्रज़ेंटेशन या फ़ॉर्म में सिर्फ़ किसी खास नाम वाला एक मेन्यू हो सकता है. अगर किसी स्क्रिप्ट या अन्य स्क्रिप्ट का मेन्यू एक ही नाम के साथ जुड़ता है, तो नया मेन्यू पुराने मेन्यू की जगह ले लेता है. फ़ाइल के खुले होने पर मेन्यू को हटाया नहीं जा सकता. हालांकि, आने वाले समय में, किसी खास प्रॉपर्टी को सेट करने पर आप अपना onOpen() फ़ंक्शन लिख सकते हैं.

Google Sheets में क्लिक की जा सकने वाली इमेज और ड्रॉइंग

आप Google Sheets में किसी इमेज या ड्रॉइंग के लिए Apps Script फ़ंक्शन भी असाइन कर सकते हैं. हालांकि, इसके लिए स्क्रिप्ट को स्प्रेडशीट से बाइंड करना ज़रूरी है. नीचे दिए गए उदाहरण में, इसे सेट अप करने का तरीका बताया गया है.

  1. Google Sheets में, मेन्यू आइटम एक्सटेंशन चुनें > Apps Script चुनें, ताकि स्प्रेडशीट के लिए कोई स्क्रिप्ट नहीं बनाई जा सके.
  2. स्क्रिप्ट एडिटर में दिया गया कोई भी कोड मिटाएं और नीचे दिया गया कोड चिपकाएं.
    function showMessageBox() {
    Browser.msgBox('You clicked it!');
    }
  3. Sheets पर वापस जाएं और Insert > Image या Insert > Drawings का इस्तेमाल करके, कोई इमेज या ड्रॉइंग शामिल करें.
  4. इमेज या ड्रॉइंग डालने के बाद, उस पर क्लिक करें. सबसे ऊपर दाएं कोने में एक छोटा-सा ड्रॉप-डाउन मेन्यू सिलेक्टर दिखेगा. उस पर क्लिक करें और स्क्रिप्ट असाइन करें चुनें.
  5. एक डायलॉग बॉक्स दिखेगा, उसमें उस Apps Script फ़ंक्शन का नाम लिखें जिसे आपको ब्रैकेट के बिना चलाना है. इस मामले में, showMessageBox. ठीक है पर क्लिक करें.
  6. इमेज या ड्रॉइंग पर फिर से क्लिक करें. फ़ंक्शन अब काम करने लगेगा.

आप Google Sites में एक लिंक के लिए भी Apps Script फ़ंक्शन असाइन कर सकते हैं. हालांकि, ऐसा तब तक किया जा सकता है, जब तक स्क्रिप्ट साइट पर बाइंड रहेगी. नीचे दिए गए उदाहरण में, इसे सेट अप करने का तरीका बताया गया है.

  1. Google Sites में ज़्यादा > साइट मैनेज करें पर क्लिक करें.
  2. साइडबार में, ऐप्लिकेशन स्क्रिप्ट पर क्लिक करें. इसके बाद, साइट से जुड़ी स्क्रिप्ट बनाने के लिए, नई स्क्रिप्ट जोड़ें पर क्लिक करें.
  3. स्क्रिप्ट एडिटर में मौजूद किसी भी कोड को मिटाएं और नीचे दिए गए कोड में चिपकाएं, जब उपयोगकर्ता किसी लिंक पर क्लिक करेगा, तब उसे एक ईमेल भेजा जाएगा.
    function sitesLink() {
    var recipient = Session.getActiveUser().getEmail();
    GmailApp.sendEmail(recipient, 'Email from your site', 'You clicked a link!');
    }
  4. Google साइट पर वापस जाएं और पेज में बदलाव करें. एक लेबल बनाएं, जो एक लिंक बन जाएगा, जैसे कि Click me, फिर टेक्स्ट हाइलाइट करें और शामिल करें > लिंक करें चुनें.
  5. दिखाई देने वाले संवाद में, Apps Script पर क्लिक करें. इसके बाद, उस sitesLinkफ़ंक्शन पर क्लिक करें जिसे आपने अभी-अभी बनाया है. ठीक है पर क्लिक करें.
  6. पेज में सबसे ऊपर मौजूद, सेव करें पर क्लिक करें.
  7. पेज पर जोड़े गए लिंक पर क्लिक करें.
  8. एक डायलॉग बॉक्स दिखेगा और आपको बताएगा कि स्क्रिप्ट के लिए अनुमति की ज़रूरत है. ठीक है पर क्लिक करें. इसके बाद, दूसरा डायलॉग बॉक्स खास Google सेवाओं के लिए अनुमति देने का अनुरोध करेगा. सूचना को ध्यान से पढ़ें. इसके बाद, अनुमति दें, फिर बंद करें पर क्लिक करें.
  9. स्क्रिप्ट को अनुमति देने के बाद, पेज पर जोड़े गए लिंक पर फिर से क्लिक करें. फ़ंक्शन अब काम करने लगेगा. अपना ईमेल देखने के लिए, अपना ईमेल देखें.