// Open a document by ID.// TODO(developer): Replace the ID with your own.letdoc=DocumentApp.openById('DOCUMENT_ID');// Create and open a document.doc=DocumentApp.create('Document Name');
// Add a custom menu to the active document, including a separator and a// sub-menu.functiononOpen(e){DocumentApp.getUi().createMenu('My Menu').addItem('My menu item','myFunction').addSeparator().addSubMenu(DocumentApp.getUi().createMenu('My sub-menu').addItem('One sub-menu item','mySecondFunction').addItem('Another sub-menu item','myThirdFunction'),).addToUi();}
// Open a document by URL.constdoc=DocumentApp.openByUrl('https://docs.google.com/document/d/1234567890abcdefghijklmnopqrstuvwxyz_a1b2c3/edit',);
[[["เข้าใจง่าย","easyToUnderstand","thumb-up"],["แก้ปัญหาของฉันได้","solvedMyProblem","thumb-up"],["อื่นๆ","otherUp","thumb-up"]],[["ไม่มีข้อมูลที่ฉันต้องการ","missingTheInformationINeed","thumb-down"],["ซับซ้อนเกินไป/มีหลายขั้นตอนมากเกินไป","tooComplicatedTooManySteps","thumb-down"],["ล้าสมัย","outOfDate","thumb-down"],["ปัญหาเกี่ยวกับการแปล","translationIssue","thumb-down"],["ตัวอย่าง/ปัญหาเกี่ยวกับโค้ด","samplesCodeIssue","thumb-down"],["อื่นๆ","otherDown","thumb-down"]],["อัปเดตล่าสุด 2025-07-26 UTC"],[[["\u003cp\u003eThe \u003ccode\u003eDocumentApp\u003c/code\u003e service in Google Apps Script allows you to programmatically create, open, and edit Google Documents.\u003c/p\u003e\n"],["\u003cp\u003eYou can open existing documents using their ID or URL, or create new documents with a specified name.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eDocumentApp\u003c/code\u003e provides access to a document's user interface, enabling features like custom menus, dialogs, and sidebars.\u003c/p\u003e\n"],["\u003cp\u003eIt offers a variety of properties and methods to manipulate document content, formatting, and elements.\u003c/p\u003e\n"],["\u003cp\u003eUsing this service requires specific authorization scopes related to document access and modification.\u003c/p\u003e\n"]]],[],null,["DocumentApp\n\nThe document service creates and opens [Documents](/apps-script/reference/document/document) that can be edited.\n\n```javascript\n// Open a document by ID.\n// TODO(developer): Replace the ID with your own.\nlet doc = DocumentApp.openById('DOCUMENT_ID');\n\n// Create and open a document.\ndoc = DocumentApp.create('Document Name');\n``` \n\nProperties\n\n| Property | Type | Description |\n|-------------------------|-----------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|\n| `Attribute` | [Attribute](/apps-script/reference/document/attribute) | The [Attribute](/apps-script/reference/document/attribute) enumeration. |\n| `Element``Type` | [ElementType](/apps-script/reference/document/element-type) | The [ElementType](/apps-script/reference/document/element-type) enumeration. |\n| `Font``Family` | [FontFamily](/apps-script/reference/document/font-family) | The [FontFamily](/apps-script/reference/document/font-family) enumeration. |\n| `Glyph``Type` | [GlyphType](/apps-script/reference/document/glyph-type) | The [GlyphType](/apps-script/reference/document/glyph-type) enumeration. |\n| `Horizontal``Alignment` | [HorizontalAlignment](/apps-script/reference/document/horizontal-alignment) | The [HorizontalAlignment](/apps-script/reference/document/horizontal-alignment) enumeration. |\n| `Paragraph``Heading` | [ParagraphHeading](/apps-script/reference/document/paragraph-heading) | The [ParagraphHeading](/apps-script/reference/document/paragraph-heading) enumeration. |\n| `Positioned``Layout` | [PositionedLayout](/apps-script/reference/document/positioned-layout) | The [PositionedLayout](/apps-script/reference/document/positioned-layout) enumeration. |\n| `Text``Alignment` | [TextAlignment](/apps-script/reference/document/text-alignment) | The [TextAlignment](/apps-script/reference/document/text-alignment) enumeration. |\n| `Vertical``Alignment` | [VerticalAlignment](/apps-script/reference/document/vertical-alignment) | The [VerticalAlignment](/apps-script/reference/document/vertical-alignment) enumeration. |\n\nMethods\n\n| Method | Return type | Brief description |\n|---------------------------------------------|------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------|\n| [create(name)](#create(String)) | [Document](/apps-script/reference/document/document) | Creates and returns a new document. |\n| [getActiveDocument()](#getActiveDocument()) | [Document](/apps-script/reference/document/document) | Returns the document to which the script is [container-bound](/apps-script/scripts_containers). |\n| [getUi()](#getUi()) | [Ui](../base/ui.html) | Returns an instance of the document's user-interface environment that allows the script to add features like menus, dialogs, and sidebars. |\n| [openById(id)](#openById(String)) | [Document](/apps-script/reference/document/document) | Returns the document with the specified ID. |\n| [openByUrl(url)](#openByUrl(String)) | [Document](/apps-script/reference/document/document) | Opens and returns the document with the specified URL. |\n\nDetailed documentation \n\n`create(name)` \nCreates and returns a new document.\n\n```javascript\n// Create and open a new document.\nconst doc = DocumentApp.create('Document Name');\n```\n\nParameters\n\n| Name | Type | Description |\n|--------|----------|--------------------------|\n| `name` | `String` | The new document's name. |\n\nReturn\n\n\n[Document](/apps-script/reference/document/document) --- The new document instance.\n\nAuthorization\n\nScripts that use this method require authorization with one or more of the following [scopes](/apps-script/concepts/scopes#setting_explicit_scopes):\n\n- `https://www.googleapis.com/auth/documents`\n\n*** ** * ** ***\n\n`get``Active``Document()` \nReturns the document to which the script is [container-bound](/apps-script/scripts_containers). To interact with document to which\nthe script is not container-bound, use [openById(id)](#openById(String)) or [openByUrl(url)](#openByUrl(String))\ninstead.\n\n```javascript\n// Get the document to which this script is bound.\nconst doc = DocumentApp.getActiveDocument();\n```\n\nReturn\n\n\n[Document](/apps-script/reference/document/document) --- the document instance\n\nAuthorization\n\nScripts that use this method require authorization with one or more of the following [scopes](/apps-script/concepts/scopes#setting_explicit_scopes):\n\n- `https://www.googleapis.com/auth/documents.currentonly`\n- `https://www.googleapis.com/auth/documents`\n\n*** ** * ** ***\n\n`get``Ui()` \nReturns an instance of the document's user-interface environment that allows the script to add\nfeatures like menus, dialogs, and sidebars. A script can only interact with the UI for the\ncurrent instance of an open document, and only if the script is [bound](/apps-script/scripts_containers) to the document. For more information, see the\nguides to [menus](/apps-script/guides/menus) and [dialogs and sidebars](/apps-script/guides/dialogs).\n\n```javascript\n// Add a custom menu to the active document, including a separator and a\n// sub-menu.\nfunction onOpen(e) {\n DocumentApp.getUi()\n .createMenu('My Menu')\n .addItem('My menu item', 'myFunction')\n .addSeparator()\n .addSubMenu(\n DocumentApp.getUi()\n .createMenu('My sub-menu')\n .addItem('One sub-menu item', 'mySecondFunction')\n .addItem('Another sub-menu item', 'myThirdFunction'),\n )\n .addToUi();\n}\n```\n\nReturn\n\n\n[Ui](../base/ui.html) --- an instance of this document's user-interface environment\n\n*** ** * ** ***\n\n`open``By``Id(id)` \nReturns the document with the specified ID. If the script is container-bound to the document,\nuse [getActiveDocument()](#getActiveDocument()) instead.\n\n```javascript\n// Open a document by ID.\n// TODO(developer): Replace the ID with your own.\nconst doc = DocumentApp.openById('DOCUMENT_ID');\n```\n\nParameters\n\n| Name | Type | Description |\n|------|----------|---------------------------------|\n| `id` | `String` | The ID of the document to open. |\n\nReturn\n\n\n[Document](/apps-script/reference/document/document) --- The document instance.\n\nAuthorization\n\nScripts that use this method require authorization with one or more of the following [scopes](/apps-script/concepts/scopes#setting_explicit_scopes):\n\n- `https://www.googleapis.com/auth/documents`\n\n*** ** * ** ***\n\n`open``By``Url(url)` \nOpens and returns the document with the specified URL. If the script is container-bound to the\ndocument, use [getActiveDocument()](#getActiveDocument()) instead.\n\n```javascript\n// Open a document by URL.\nconst doc = DocumentApp.openByUrl(\n 'https://docs.google.com/document/d/1234567890abcdefghijklmnopqrstuvwxyz_a1b2c3/edit',\n);\n```\n\nParameters\n\n| Name | Type | Description |\n|-------|----------|---------------------------------|\n| `url` | `String` | the URL of the document to open |\n\nReturn\n\n\n[Document](/apps-script/reference/document/document) --- the document instance\n\nAuthorization\n\nScripts that use this method require authorization with one or more of the following [scopes](/apps-script/concepts/scopes#setting_explicit_scopes):\n\n- `https://www.googleapis.com/auth/documents`"]]