منوهای سفارشی در 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

همچنین می‌توانید یک تابع Apps Script را به یک تصویر یا طراحی در Google Sheets اختصاص دهید، تا زمانی که اسکریپت به صفحه‌گسترده پیوند داده شده باشد. مثال زیر نحوه تنظیم این را نشان می دهد.

  1. در کاربرگ‌نگار Google، مورد منو Extensions > Apps Script را انتخاب کنید تا اسکریپتی ایجاد کنید که به صفحه‌گسترده متصل است.
  2. هر کدی را در ویرایشگر اسکریپت حذف کنید و کد زیر را جایگذاری کنید.

      function showMessageBox() {
        Browser.msgBox('You clicked it!');
      }
    
  3. به Sheets برگردید و با انتخاب Insert > Image یا Insert > Drawing، یک تصویر یا نقاشی را وارد کنید.

  4. پس از درج تصویر یا طراحی روی آن کلیک کنید. یک انتخابگر منوی کشویی کوچک در گوشه سمت راست بالا ظاهر می شود. روی آن کلیک کنید و Assign script را انتخاب کنید.

  5. در کادر محاوره‌ای که ظاهر می‌شود، نام تابع Apps Script را که می‌خواهید اجرا کنید، بدون پرانتز تایپ کنید - در این مورد، showMessageBox . روی OK کلیک کنید.

  6. دوباره روی تصویر یا نقاشی کلیک کنید. تابع اکنون اجرا می شود.