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, SlidesApp 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, SlidesApp or FormApp.
     .alert('You clicked the first menu item!');
}

function menuItem2() {
  SpreadsheetApp.getUi() // Or DocumentApp, SlidesApp 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. शीट पर वापस लौटें और शामिल करें > इमेज या शामिल करें > ड्रॉइंग चुनकर कोई इमेज या ड्रॉइंग शामिल करें.

  4. इमेज या ड्रॉइंग डालने के बाद, उस पर क्लिक करें. ऊपर दाएं कोने में एक छोटा ड्रॉप-डाउन मेन्यू सिलेक्टर दिखता है. उस पर क्लिक करें और स्क्रिप्ट असाइन करें चुनें.

  5. दिखाई देने वाले डायलॉग बॉक्स में, उस Apps Script फ़ंक्शन का नाम लिखें जिसे आपको बिना ब्रैकेट के चलाना है. इस मामले में, showMessageBox है. ठीक है पर क्लिक करें.

  6. इमेज या ड्रॉइंग पर फिर से क्लिक करें. फ़ंक्शन अब चालू होता है.