تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يمكن أن توسّع النصوص البرمجية بعض منتجات Google من خلال إضافة عناصر واجهة مستخدم، وعند النقر عليها، يتم تنفيذ دالة في "برمجة تطبيقات Google". وأكثر الأمثلة شيوعًا هو تشغيل نص برمجي من عنصر قائمة مخصّص في "مستندات Google" أو "جداول بيانات Google" أو "العروض التقديمية من Google" أو "نماذج Google"، ولكن يمكن أيضًا تشغيل وظائف النص البرمجي من خلال النقر على الصور والرسومات في "جداول بيانات Google".
قوائم مخصّصة في "مستندات Google" أو "جداول بيانات Google" أو "العروض التقديمية من Google" أو "نماذج Google"
يمكن أن تضيف Apps Script قوائم جديدة في "مستندات Google" أو "جداول بيانات Google" أو "العروض التقديمية من Google" أو "نماذج Google"، مع ربط كل عنصر قائمة بدالة في البرنامج النصي. (في "نماذج Google"، لا تظهر القوائم المخصّصة إلا للمحرّر الذي يفتح النموذج لتعديله، وليس للمستخدم الذي يفتح النموذج للردّ عليه).
لا يمكن للبرنامج النصي إنشاء قائمة إلا إذا كان مرتبطًا بالمستند أو جدول البيانات أو النموذج.
لعرض القائمة عندما يفتح المستخدم ملفًا، اكتب رمز القائمة ضمن الدالة
onOpen().
يوضّح المثال أدناه كيفية إضافة قائمة تتضمّن عنصرًا واحدًا، يليه فاصل مرئي، ثم قائمة فرعية تتضمّن عنصرًا آخر. (يُرجى العِلم أنّه في "جداول بيانات Google"، ما لم تستخدِم الإصدار الجديد، عليك استخدام بنية
addMenu()
بدلاً من ذلك، ولا يمكن استخدام القوائم الفرعية). عندما يختار المستخدم أحد عناصر القائمة، تفتح دالة مقابلة مربّع حوار تنبيه. لمزيد من المعلومات حول أنواع مربّعات الحوار التي يمكنك فتحها، راجِع دليل مربّعات الحوار والأشرطة الجانبية.
functiononOpen(){varui=SpreadsheetApp.getUi();//OrDocumentApp,SlidesApporFormApp.ui.createMenu('Custom Menu').addItem('First item','menuItem1').addSeparator().addSubMenu(ui.createMenu('Sub-menu').addItem('Second item','menuItem2')).addToUi();}functionmenuItem1(){SpreadsheetApp.getUi()//OrDocumentApp,SlidesApporFormApp..alert('You clicked the first menu item!');}functionmenuItem2(){SpreadsheetApp.getUi()//OrDocumentApp,SlidesApporFormApp..alert('You clicked the second menu item!');}
يمكن أن يحتوي المستند أو جدول البيانات أو العرض التقديمي أو النموذج على قائمة واحدة فقط تحمل اسمًا معيّنًا. إذا أضاف البرنامج النصي نفسه أو برنامج نصي آخر قائمة بالاسم نفسه، ستحلّ القائمة الجديدة محلّ القائمة القديمة. لا يمكن إزالة القوائم أثناء فتح الملف، ولكن يمكنك كتابة دالة onOpen() لتخطّي القائمة في المستقبل إذا تم ضبط سمة معيّنة.
الصور والرسومات القابلة للنقر في "جداول بيانات Google"
يمكنك أيضًا تعيين دالة Apps Script لصورة أو رسم في "جداول بيانات Google"،
طالما أنّ النص البرمجي مرتبط
بجدول البيانات. يوضّح المثال أدناه كيفية إعداد ذلك.
في "جداول بيانات Google"، انقر على عنصر القائمة الإضافات>برمجة التطبيقات لإنشاء
نص برمجي مرتبط بجدول البيانات.
احذف أي رمز في أداة تعديل النصوص البرمجية وألصِق الرمز أدناه.
function showMessageBox() {
Browser.msgBox('You clicked it!');
}
ارجع إلى "جداول بيانات Google" وأدرِج صورة أو رسمًا من خلال النقر على
إدراج > صورة أو إدراج > رسم.
بعد إدراج الصورة أو الرسم، انقر عليهما. يظهر أداة اختيار صغيرة ضمن قائمة منسدلة
في أعلى يسار الشاشة. انقر على الرمز واختَر تعيين نص برمجي.
في مربّع الحوار الذي يظهر، اكتب اسم دالة Apps Script
التي تريد تنفيذها بدون أقواس، أي showMessageBox في هذه الحالة.
انقر على حسنًا.
انقر على الصورة أو الرسم مرة أخرى. يتم تنفيذ الدالة الآن.
تاريخ التعديل الأخير: 2025-08-31 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-08-31 (حسب التوقيت العالمي المتفَّق عليه)"],[[["\u003cp\u003eApps Script allows you to extend Google products like Docs, Sheets, Slides, and Forms by adding custom menus and clickable elements that trigger script functions.\u003c/p\u003e\n"],["\u003cp\u003eCustom menus can be created within these Google products, with each menu item linked to a specific function in your script, enhancing user interaction and functionality.\u003c/p\u003e\n"],["\u003cp\u003eIn Google Sheets, you can assign Apps Script functions to images and drawings, making them interactive elements that execute code when clicked in a web browser.\u003c/p\u003e\n"]]],[],null,["# Custom Menus in Google Workspace\n\nScripts can extend certain Google products by adding user-interface elements\nthat, when clicked, execute an Apps Script function. The most common example is\nrunning a script from a custom menu item in Google Docs, Sheets, Slides,\nor Forms, but script functions can also be triggered by clicking on images and\ndrawings in Google Sheets.\n\nCustom menus in Google Docs, Sheets, Slides, or Forms\n-----------------------------------------------------\n\nApps Script can add new menus in Google Docs, Sheets, Slides,\nor Forms, with\neach menu item tied to a function in a script. (In Google Forms, custom menus\nare visible only to an editor who opens the form to modify it, not to a user who\nopens the form to respond.)\n\nA script can only create a menu if it is\n[bound](/apps-script/scripts_containers) to the document, spreadsheet, or form.\nTo display the menu when the user opens a file, write the menu code within an\n[`onOpen()`](/apps-script/understanding_triggers) function.\n\nThe example below shows how to add a [menu](/apps-script/reference/base/menu)\nwith one item, followed by a\n[visual separator](/apps-script/reference/base/menu#addSeparator()), then a\n[sub-menu](/apps-script/reference/base/menu#addSubMenu(Menu)) that contains\nanother item. (Note that in Google Sheets, unless you're using the\n[new version](https://support.google.com/drive/answer/3541068), you must use the\n[`addMenu()`](/apps-script/reference/spreadsheet/spreadsheet#addMenu(String,Object))\nsyntax instead, and sub-menus are not possible.) When the user selects either\nmenu item, a corresponding function opens an\n[alert](/apps-script/reference/base/ui#alert(String)) dialog. For more\ninformation on the types of dialogs you can open, see the\n[guide to dialogs and sidebars](/apps-script/guides/dialogs). \n\n function onOpen() {\n var ui = SpreadsheetApp.getUi();\n // Or DocumentApp, SlidesApp or FormApp.\n ui.createMenu('Custom Menu')\n .addItem('First item', 'menuItem1')\n .addSeparator()\n .addSubMenu(ui.createMenu('Sub-menu')\n .addItem('Second item', 'menuItem2'))\n .addToUi();\n }\n\n function menuItem1() {\n SpreadsheetApp.getUi() // Or DocumentApp, SlidesApp or FormApp.\n .alert('You clicked the first menu item!');\n }\n\n function menuItem2() {\n SpreadsheetApp.getUi() // Or DocumentApp, SlidesApp or FormApp.\n .alert('You clicked the second menu item!');\n }\n\nA document, spreadsheet, presentation, or form can only contain one menu with\na given name. If the same script or another script adds a menu with the same\nname, the new menu replaces the old. Menus cannot be removed while the file\nis open, although you can write your `onOpen()` function to skip the menu in\nthe future if a certain [property](/apps-script/guides/properties) is set.\n| **Note:** [Editor add-ons](/workspace/add-ons/concepts/types#editor_add-ons) can have menu items as well, but use [special rules](/workspace/add-ons/concepts/menus) they are defined.\n\nClickable images and drawings in Google Sheets\n----------------------------------------------\n\nYou can also assign an Apps Script function to an image or drawing in Google Sheets,\nso long as the script is [bound](/apps-script/scripts_containers) to the\nspreadsheet. The example below shows how to set this up.\n\n1. In Google Sheets, select the menu item **Extensions** \\\u003e **Apps Script** to create a script that is bound to the spreadsheet.\n2. Delete any code in the script editor and paste in the code below.\n\n function showMessageBox() {\n Browser.msgBox('You clicked it!');\n }\n\n3. Return to Sheets and insert an image or drawing by selecting\n **Insert \\\u003e Image** or **Insert \\\u003e Drawing**.\n\n4. After inserting the image or drawing, click it. A small drop-down menu\n selector appears in the top right-hand corner. Click it and choose\n **Assign script**.\n\n5. In the dialog box that appears, type the name of the Apps Script function\n that you want to run, without parentheses --- in this case, `showMessageBox`.\n Click **OK**.\n\n6. Click the image or drawing again. The function now executes.\n\n| **Note:** The script execution is only triggered by clicking the image or drawing in a web browser. The script doesn't execute if the image or drawing is clicked on mobile."]]