ماکروهای Google Sheets

گوگل شیت به شما امکان می‌دهد ماکروهایی را ضبط کنید که مجموعه‌ای خاص از تعاملات رابط کاربری را که تعریف می‌کنید، کپی می‌کنند. پس از ضبط یک ماکرو، می‌توانید آن را به یک میانبر صفحه‌کلید به شکل Ctrl+Alt+Shift+Number پیوند دهید. از این میانبر برای اجرای سریع مراحل دقیق ماکرو، معمولاً در مکانی متفاوت یا روی داده‌های متفاوت، استفاده کنید. همچنین می‌توانید ماکرو را از منوی Sheets Extensions > Macros فعال کنید.

وقتی یک ماکرو را ضبط می‌کنید، Sheets به طور خودکار یک تابع Apps Script ( تابع ماکرو ) ایجاد می‌کند که مراحل ماکرو را تکرار می‌کند. تابع ماکرو به یک پروژه Apps Script که به برگه متصل است ، در فایلی با عنوان macros.gs اضافه می‌شود. در صورتی که از قبل یک فایل پروژه با آن نام به برگه متصل باشد، تابع ماکرو به آن پیوست می‌شود. Sheets همچنین به طور خودکار مانیفست پروژه اسکریپت را به‌روزرسانی می‌کند و نام و میانبر صفحه‌کلید اختصاص داده شده به ماکرو را ثبت می‌کند.

از آنجایی که هر ماکروی ضبط شده کاملاً در Apps Script تعریف شده است، می‌توانید آنها را مستقیماً در ویرایشگر Apps Script ویرایش کنید. حتی می‌توانید ماکروها را از ابتدا در Apps Script بنویسید، یا توابعی را که قبلاً نوشته‌اید، به ماکرو تبدیل کنید.

ایجاد ماکرو در Apps Script

شما می‌توانید توابع نوشته شده در Apps Script را گرفته و از آنها به عنوان توابع ماکرو استفاده کنید. یک راه ساده برای انجام این کار، وارد کردن یک تابع موجود از ویرایشگر Sheets است.

از طرف دیگر، می‌توانید با دنبال کردن این مراحل، ماکروها را در ویرایشگر Apps Script ایجاد کنید:

  1. در رابط کاربری Sheets، گزینه Extensions > Apps Script را انتخاب کنید تا اسکریپت متصل به برگه در ویرایشگر Apps Script باز شود.
  2. تابع ماکرو را بنویسید. توابع ماکرو نباید هیچ آرگومانی بگیرند و هیچ مقداری را برنگردانند.
  3. اسکریپت مانیفست خود را ویرایش کنید تا ماکرو ایجاد شود و آن را به تابع ماکرو پیوند دهید. یک میانبر صفحه کلید و نام منحصر به فرد به آن اختصاص دهید.
  4. پروژه اسکریپت را ذخیره کنید. سپس ماکرو برای استفاده در برگه در دسترس است.
  5. تابع ماکرو را در برگه آزمایش کنید تا مطمئن شوید که طبق انتظار عمل می‌کند.

ویرایش ماکروها

برای ویرایش ماکروهای پیوست شده به یک برگه، موارد زیر را انجام دهید:

  1. در رابط کاربری Sheets، گزینه Extensions > Macros > Manage macros را انتخاب کنید.
  2. ماکرویی را که می‌خواهید ویرایش کنید پیدا کنید و > Edit macro را انتخاب کنید. این کار ویرایشگر Apps Script را برای فایل پروژه حاوی تابع ماکرو باز می‌کند.
  3. برای تغییر رفتار ماکرو، تابع ماکرو را ویرایش کنید.
  4. پروژه اسکریپت را ذخیره کنید. سپس ماکرو برای استفاده در برگه در دسترس است.
  5. تابع ماکرو را در برگه آزمایش کنید تا مطمئن شوید که طبق انتظار عمل می‌کند.

توابع را به عنوان ماکرو وارد کنید

اگر از قبل اسکریپتی به یک برگه متصل شده است، می‌توانید یک تابع را در اسکریپت به عنوان یک ماکروی جدید وارد کنید و سپس یک میانبر صفحه کلید به آن اختصاص دهید. این کار را با ویرایش فایل مانیفست و اضافه کردن عنصر دیگری به ویژگی sheets.macros[] انجام دهید.

روش دیگر، برای وارد کردن یک تابع به عنوان ماکرو از رابط کاربری Sheets، این مراحل را دنبال کنید:

  1. در رابط کاربری Sheets، گزینه‌های Extensions > Macros > Import را انتخاب کنید.
  2. یک تابع را از لیست نمایش داده شده انتخاب کنید و سپس روی افزودن تابع کلیک کنید.
  3. برای بستن کادر محاوره‌ای، را انتخاب کنید.
  4. افزونه‌ها > ماکروها > مدیریت ماکروها را انتخاب کنید.
  5. تابعی را که به تازگی وارد کرده‌اید در لیست پیدا کنید. یک میانبر صفحه کلید منحصر به فرد به ماکرو اختصاص دهید. همچنین می‌توانید نام ماکرو را در اینجا تغییر دهید؛ نام پیش‌فرض، نام تابع است.
  6. برای ذخیره پیکربندی ماکرو، روی به‌روزرسانی کلیک کنید.

ساختار مانیفست برای ماکروها

قطعه کد نمونه فایل مانیفست زیر، بخشی از مانیفست را نشان می‌دهد که ماکروهای Sheets را تعریف می‌کند. بخش sheets در مانیفست، نام و میانبر صفحه‌کلید اختصاص داده شده به ماکرو و نام تابع ماکرو را تعریف می‌کند.

مانیفست‌ها شامل اجزای دیگری هستند که به ویژگی‌های اسکریپت برنامه‌ها مربوط می‌شوند. فیلدهای زیر کلید sheets مستقیماً به عملکرد Sheets مربوط می‌شوند. این مثال فقط بخشی از یک فایل مانیفست کامل است و یک مانیفست کاملاً کاربردی نیست.

{
  ...
  "sheets": {
    "macros": [{
      "menuName": "QuickRowSum",
      "functionName": "calculateRowSum",
      "defaultShortcut": "Ctrl+Alt+Shift+1"
    }, {
      "menuName": "Headerfy",
      "functionName": "updateToHeaderStyle",
      "defaultShortcut": "Ctrl+Alt+Shift+2"
    }]
  }
}

برای جزئیات بیشتر در مورد نحوه ساخت مانیفست‌های ماکروی Sheets، به منبع مانیفست ماکروی Sheets مراجعه کنید.

بهترین شیوه‌ها

هنگام ایجاد یا مدیریت ماکروها در Apps Script، این دستورالعمل‌ها را دنبال کنید:

  1. ماکروها وقتی سبک باشند، عملکرد بهتری دارند. در صورت امکان، تعداد اقداماتی که یک ماکرو انجام می‌دهد را محدود کنید.
  2. ماکروها برای عملیات تکراری که باید مرتباً با پیکربندی کم یا بدون پیکربندی تکرار شوند، مناسب‌ترین هستند. برای سایر عملیات، به جای آن، استفاده از یک آیتم منوی سفارشی را در نظر بگیرید.
  3. همیشه به یاد داشته باشید که میانبرهای صفحه کلید ماکرو باید منحصر به فرد باشند و یک برگه مشخص فقط می‌تواند ده ماکرو با میانبر را در هر زمان داشته باشد. هر ماکروی اضافی فقط از منوی Extensions > Macros قابل اجرا است.
  4. ماکروهایی که در یک سلول واحد تغییراتی ایجاد می‌کنند، می‌توانند با انتخاب کل محدوده سلول‌ها و سپس فعال کردن ماکرو، روی طیف وسیعی از سلول‌ها اعمال شوند. این بدان معناست که اغلب نیازی به ایجاد ماکروهایی نیست که همان عملیات را در طیف از پیش تعریف شده‌ای از سلول‌ها تکرار کنند.

کارهایی که نمی‌توانید انجام دهید

چند محدودیت در مورد کارهایی که می‌توانید با ماکروها انجام دهید وجود دارد:

استفاده از ماکروها خارج از اسکریپت‌های محدود شده

ماکروها در اسکریپت‌هایی تعریف می‌شوند که به Sheetهای خاصی متصل هستند. اگر تعاریف ماکرو در یک اسکریپت مستقل یا برنامه وب تعریف شوند، نادیده گرفته می‌شوند.

تعریف ماکروها در افزونه‌های Sheets Google Workspace

شما نمی‌توانید تعاریف ماکرو را با استفاده از افزونه‌ی Sheets Google Workspace توزیع کنید. هرگونه تعریف ماکرو در یک پروژه‌ی افزونه‌ی Sheets توسط کاربران آن افزونه نادیده گرفته می‌شود.

توزیع ماکروها در کتابخانه‌های اسکریپت

شما نمی‌توانید تعاریف ماکرو را با استفاده از کتابخانه‌های Apps Script توزیع کنید.

استفاده از ماکروها خارج از Sheets

ماکروها فقط یک ویژگی در Sheets هستند و برای Google Docs، Forms یا Google Slides وجود ندارند.