Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Một tập lệnh được liên kết với một tệp Google Trang tính, Tài liệu, Trang trình bày hoặc Biểu mẫu nếu tập lệnh đó được tạo từ tài liệu đó thay vì là một tập lệnh độc lập. Tệp mà một tập lệnh liên kết được đính kèm vào được gọi là "vùng chứa". Các tập lệnh liên kết thường hoạt động giống như tập lệnh độc lập, ngoại trừ việc chúng không xuất hiện trong Google Drive, không thể tách khỏi tệp mà chúng được liên kết và có một số đặc quyền đặc biệt đối với tệp mẹ.
Xin lưu ý rằng bạn cũng có thể liên kết tập lệnh với Google Sites, nhưng những tập lệnh này hầu như luôn được triển khai dưới dạng ứng dụng web. Các tập lệnh liên kết với Google Trang tính, Tài liệu, Trang trình bày hoặc Biểu mẫu cũng có thể trở thành ứng dụng web, mặc dù điều này không phổ biến.
Tạo tập lệnh liên kết
Google Tài liệu, Trang tính hoặc Trang trình bày
Để tạo một tập lệnh ràng buộc trong Google Tài liệu, Trang tính hoặc Trang trình bày, hãy mở một tài liệu trong Tài liệu, một bảng tính trong Trang tính hoặc một bản trình bày trong Trang trình bày rồi nhấp vào Tiện ích bổ sung>Apps Script. Để mở lại tập lệnh trong tương lai, hãy làm tương tự hoặc mở tập lệnh trên trang tổng quan về Apps Script.
Google Biểu mẫu
Để tạo một tập lệnh liên kết trong Google Biểu mẫu, hãy mở một biểu mẫu rồi nhấp vào biểu tượng Tuỳ chọn khác more_vert>Trình chỉnh sửa tập lệnh. Để mở lại tập lệnh trong tương lai, hãy làm tương tự hoặc mở tập lệnh trên trang tổng quan về Apps Script.
Phương thức đặc biệt
Tập lệnh liên kết có thể gọi một số phương thức mà tập lệnh độc lập không thể gọi:
Các tập lệnh liên kết có thể tuỳ chỉnh Google Trang tính, Tài liệu và Biểu mẫu bằng cách thêm trình đơn tuỳ chỉnh và hộp thoại hoặc thanh bên. Tuy nhiên, xin lưu ý rằng tập lệnh chỉ có thể tương tác với giao diện người dùng cho phiên bản hiện tại của một tệp đang mở. Tức là một tập lệnh được liên kết với một tài liệu không thể ảnh hưởng đến giao diện người dùng của một tài liệu khác.
Điều kiện kích hoạt
Tập lệnh liên kết có thể sử dụng trình kích hoạt đơn giản như hàm onOpen() đặc biệt. Hàm này sẽ tự động chạy bất cứ khi nào người dùng có quyền chỉnh sửa mở một tệp. Giống như tất cả các loại tập lệnh, tập lệnh này cũng có thể sử dụng trình kích hoạt có thể cài đặt.
Hàm tuỳ chỉnh
Hàm tuỳ chỉnh là một hàm trong tập lệnh được liên kết với Google Trang tính mà bạn gọi trực tiếp từ một ô bằng cách sử dụng cú pháp =myFunctionName(). Do đó, hàm tuỳ chỉnh tương tự như hàng trăm hàm tích hợp trong Trang tính, chẳng hạn như AVERAGE hoặc SUM, ngoại trừ việc bạn xác định hành vi của hàm tuỳ chỉnh.
Truy cập vào tập lệnh liên kết
Chỉ những người dùng có quyền chỉnh sửa vùng chứa mới có thể chạy tập lệnh liên kết của vùng chứa đó. Cộng tác viên chỉ có quyền xem thì không thể mở trình chỉnh sửa tập lệnh. Tuy nhiên, nếu tạo bản sao của tệp vùng chứa, họ sẽ trở thành chủ sở hữu của bản sao đó và có thể xem cũng như chạy bản sao của tập lệnh.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-08-04 UTC."],[[["\u003cp\u003eBound scripts are Google Apps Scripts attached to Google Docs, Sheets, Slides, or Forms, offering special privileges to interact with their parent file.\u003c/p\u003e\n"],["\u003cp\u003eUnlike standalone scripts, bound scripts reside within their container file and cannot be detached, functioning like unpublished add-ons specific to that file.\u003c/p\u003e\n"],["\u003cp\u003eThey allow the use of special methods to programmatically access and manipulate the parent file's content and user interface.\u003c/p\u003e\n"],["\u003cp\u003eBound scripts can be shared by sharing the container file, enabling collaborators with edit access to run the script.\u003c/p\u003e\n"],["\u003cp\u003eThese scripts can also be published as add-ons, making them accessible to a wider audience through the add-on store.\u003c/p\u003e\n"]]],[],null,["A script is bound to a Google Sheets, Docs, Slides, or Forms file if it was\ncreated from that document rather than as a [standalone script](/apps-script/guides/standalone).\nThe file that a bound script is attached to is called a \"container.\"\nBound scripts generally behave like standalone scripts except that they\ndo not appear in Google Drive, they cannot be detached from the file\nthey are bound to, and they gain a few special privileges over the parent file.\n\nNote that scripts can also be bound to Google Sites, but these scripts are\nalmost always deployed as [web apps](/apps-script/guides/web). Scripts\nbound to Google Sheets, Docs, Slides, or Forms can also become web apps, although\nthis is uncommon.\n| **Note:** Bound scripts are effectively unpublished [add-ons](/workspace/add-ons/concepts/types#editor_add-ons) that function only for the file they are bound to.\n\nCreate a bound script\n\nGoogle Docs, Sheets, or Slides\n\nTo create a bound script in Google Docs, Sheets, or Slides, open a document in\nDocs, a spreadsheet in Sheets, or a presentation in Slides and click\n**Extensions**\n\\\u003e **Apps Script** . To reopen the script in\nthe future, do the same thing or open the script from the\n[Apps Script dashboard](https://script.google.com/home).\n\nGoogle Forms\n\nTo create a bound script in Google Forms, open a form\nand click More more_vert\n\\\u003e **Script\neditor** . To reopen the script in the\nfuture, do the same thing or open the script from the\n[Apps Script dashboard](https://script.google.com/home).\n| **Note:** The [`clasp`](/apps-script/guides/clasp) tool can't create bound scripts, but it can clone and edit them.\n\nSpecial methods\n\nBound scripts can call a few methods that standalone scripts cannot:\n\n- [`getActiveSpreadsheet()`](/apps-script/reference/spreadsheet/spreadsheet-app#getActiveSpreadsheet()), [`getActiveDocument()`](/apps-script/reference/document/document-app#getActiveDocument()), [`getActivePresentation()`](/apps-script/reference/slides/slides-app#getactivepresentation), and [`getActiveForm()`](/apps-script/reference/forms/form-app#getActiveForm()) allow bound scripts to refer to their parent file without referring to the file's ID.\n- [`getUi`](/apps-script/reference/spreadsheet/spreadsheet-app#getUi()) lets bound scripts access the user interface for their parent file to add [custom menus, dialogs, and sidebars](#custom_menus_dialogs_and_sidebars).\n- In Google Sheets, [`getActiveSheet()`](/apps-script/reference/spreadsheet/spreadsheet-app#getActiveSheet()), [`getActiveRange()`](/apps-script/reference/spreadsheet/spreadsheet-app#getActiveRange()), and [`getActiveCell()`](/apps-script/reference/spreadsheet/sheet#getActiveCell()) let the script determine the user's current sheet, selected range of cells, or selected individual cell. [`setActiveSheet(sheet)`](/apps-script/reference/spreadsheet/spreadsheet-app#setActiveSheet(Sheet)) and [`setActiveRange(range)`](/apps-script/reference/spreadsheet/spreadsheet-app#setActiveRange(Range)) let the script change those selections.\n- In Google Docs, [`getActiveTab()`](/apps-script/reference/document/document#getActiveTab()), [`getCursor()`](/apps-script/reference/document/document#getCursor()), and [`getSelection()`](/apps-script/reference/document/document#getSelection()) let the script determine the user's current tab, position of the user's cursor, or selected text. [`setActiveTab(tabId)`](/apps-script/reference/document/document#setActiveTab(String)), [`setCursor(position)`](/apps-script/reference/document/document#setCursor(Position)) and [`setSelection(range)`](/apps-script/reference/document/document#setSelection(Range)) let the script change those selections.\n\nFor more information, see the\n[guide to extending Google Sheets](/apps-script/guides/sheets) or\nthe [guide to extending Google Docs](/apps-script/guides/docs).\n| **Note:** These methods are only available to bound scripts run from the script editor, menu items, dialogs, sidebars, or triggers. When a bound script is run as a web app or via the [Apps Script API](/apps-script/api/how-tos/execute), these methods are not available.\n\nCustom menus, dialogs, and sidebars\n\nBound scripts can customize Google Sheets, Docs, and Forms by adding\n[custom menus](/apps-script/guides/menus) and\n[dialog boxes or sidebars](/apps-script/guides/dialogs). Keep in mind,\nhowever, that a script can only interact with the user interface for the\ncurrent instance of an open file. That is, a script bound to one document\ncannot affect the user interface of another document.\n| Add-ons can also add custom menus, dialogs and sidebars. It is recommended to develop add-ons using [standalone scripts](/apps-script/guides/standalone).\n\nTriggers\n\nBound scripts can use [simple triggers](/apps-script/guides/triggers)\nlike the special `onOpen()` function, which runs automatically whenever a file\nis opened by a user who has edit access. Like all types of scripts, they can\nalso use [installable triggers](/apps-script/guides/triggers/installable).\n\nCustom functions\n\nA [custom function](/apps-script/guides/sheets/functions) is a function in a\nscript bound to Google Sheets that you call directly from a cell using the\nsyntax `=myFunctionName()`. Custom functions are thus similar to the hundreds of\n[built-in functions](https://support.google.com/drive/topic/1361471) in Sheets\nlike [`AVERAGE`](https://support.google.com/drive/answer/3093615) or\n[`SUM`](https://support.google.com/drive/answer/3093669) except that you define\nthe custom function's behavior.\n\nAccess to bound scripts\n\nOnly users who have permission to edit a container can run its bound script.\nCollaborators who have only view access can't open the script\neditor, although if they make a copy of the container file, they become the\nowner of the copy and can see and run a copy of the script.\n\nTo learn how to share a script's container file, refer to [Share files from\nGoogle Drive](https://support.google.com/drive/answer/2494822).\n| All container-bound scripts use the same owner, viewer, and editor access list defined for the container file. The container owner takes ownership of a new script project regardless of who created it."]]