มาโครของ Google ชีต

Google ชีตช่วยให้คุณบันทึก มาโครที่ทำซ้ำ ชุดการโต้ตอบ UI ที่เฉพาะเจาะจงซึ่งคุณกำหนดไว้ได้ เมื่อบันทึก มาโครแล้ว คุณจะลิงก์มาโครกับแป้นพิมพ์ลัดในรูปแบบ Ctrl+Alt+Shift+Number ได้ ใช้แป้นพิมพ์ลัดดังกล่าวเพื่อเรียกใช้ขั้นตอนมาโครที่แน่นอนอีกครั้งอย่างรวดเร็ว ซึ่งโดยปกติจะใช้ในตำแหน่งอื่นหรือกับข้อมูลอื่น นอกจากนี้ คุณยังเปิดใช้งานมาโครได้จากเมนู ส่วนขยาย > มาโคร ของชีต

เมื่อคุณบันทึกมาโคร ชีตจะสร้างฟังก์ชัน Apps Script (ฟังก์ชัน มาโคร) ที่ทำซ้ำขั้นตอนมาโครโดยอัตโนมัติ ระบบจะเพิ่มฟังก์ชันมาโครลงในโปรเจ็กต์ Apps Script ที่ ผูกกับชีตในไฟล์ชื่อ macros.gs ในกรณีที่มีไฟล์โปรเจ็กต์ที่ผูกกับชีตที่มีชื่อดังกล่าวอยู่แล้ว ระบบจะผนวกฟังก์ชันมาโครเข้ากับไฟล์นั้น นอกจากนี้ ชีตยังอัปเดตไฟล์ Manifest ของโปรเจ็กต์สคริปต์โดยอัตโนมัติ ซึ่งจะบันทึกชื่อและแป้นพิมพ์ลัดที่กำหนดให้กับมาโคร

เนื่องจากมาโครที่บันทึกไว้ทั้งหมดกำหนดไว้ภายใน Apps Script คุณจึงแก้ไขมาโครได้โดยตรงภายในเครื่องมือแก้ไขสคริปต์ Apps Script คุณยังเขียนมาโครตั้งแต่ต้นใน Apps Script หรือนำฟังก์ชันที่เขียนไว้แล้วมาเปลี่ยนเป็นมาโครก็ได้

สร้างมาโครใน Apps Script

คุณสามารถนำฟังก์ชันที่เขียนใน Apps Script มาใช้เป็นฟังก์ชันมาโครได้ วิธีที่ตรงไปตรงมาในการทำเช่นนี้คือการนำเข้า ฟังก์ชันที่มีอยู่จากโปรแกรมแก้ไขชีต

หรือคุณจะสร้างมาโครภายในโปรแกรมแก้ไข Apps Script โดยทำตามขั้นตอนต่อไปนี้ก็ได้

  1. ใน UI ของชีต ให้เลือกส่วนขยาย > Apps Script เพื่อเปิดสคริปต์ที่ผูกกับชีตในเครื่องมือแก้ไขสคริปต์ Apps Script
  2. เขียนฟังก์ชันมาโคร ฟังก์ชันมาโครไม่ควรใช้อาร์กิวเมนต์และไม่ควรส่งคืนค่า
  3. แก้ไขไฟล์ Manifest ของสคริปต์ เพื่อสร้างมาโครและลิงก์มาโครกับฟังก์ชันมาโคร กำหนดแป้นพิมพ์ลัดและชื่อที่ไม่ซ้ำกันให้กับมาโคร
  4. บันทึกโปรเจ็กต์สคริปต์ จากนั้นคุณจะใช้มาโครในชีตได้
  5. ทดสอบฟังก์ชันมาโครในชีตเพื่อยืนยันว่าฟังก์ชันทำงานได้ตามที่มุ่งหวังไว้

แก้ไขมาโคร

หากต้องการแก้ไขมาโครที่แนบกับชีต ให้ทำดังนี้

  1. ใน UI ของชีต ให้เลือกส่วนขยาย > มาโคร > จัดการมาโคร
  2. ค้นหามาโครที่ต้องการแก้ไข แล้วเลือก > แก้ไขมาโคร ซึ่งจะเปิดเครื่องมือแก้ไขสคริปต์ Apps Script ไปยังไฟล์โปรเจ็กต์ที่มีฟังก์ชันมาโคร
  3. แก้ไขฟังก์ชันมาโครเพื่อเปลี่ยนลักษณะการทำงานของมาโคร
  4. บันทึกโปรเจ็กต์สคริปต์ จากนั้นคุณจะใช้มาโครในชีตได้
  5. ทดสอบฟังก์ชันมาโครในชีตเพื่อยืนยันว่าฟังก์ชันทำงานได้ตามที่มุ่งหวังไว้

นำเข้าฟังก์ชันเป็นมาโคร

หากมีสคริปต์ที่ ผูก กับชีตอยู่แล้ว คุณสามารถ นำเข้า ฟังก์ชันในสคริปต์เป็นมาโครใหม่ แล้วกำหนด แป้นพิมพ์ลัดให้กับมาโครนั้นได้ โดย แก้ไขไฟล์ Manifest และเพิ่มองค์ประกอบอื่นลงในพร็อพเพอร์ตี้ sheets.macros[]

หรือทำตามขั้นตอนต่อไปนี้เพื่อนำเข้าฟังก์ชันเป็นมาโครจาก UI ของชีต

  1. ใน UI ของชีต ให้เลือกส่วนขยาย > มาโคร > นำเข้า
  2. เลือกฟังก์ชันจากรายการที่แสดง แล้วคลิกเพิ่มฟังก์ชัน
  3. เลือก เพื่อปิดกล่องโต้ตอบ
  4. เลือกส่วนขยาย > มาโคร > จัดการมาโคร
  5. ค้นหาฟังก์ชันที่เพิ่งนำเข้าในรายการ กำหนดแป้นพิมพ์ลัดที่ไม่ซ้ำกันให้กับมาโคร นอกจากนี้ คุณยังเปลี่ยนชื่อมาโครได้ที่นี่ โดยค่าเริ่มต้นชื่อจะเป็นชื่อของฟังก์ชัน
  6. คลิกอัปเดต เพื่อบันทึกการกำหนดค่ามาโคร

โครงสร้างไฟล์ Manifest สำหรับมาโคร

ข้อมูลโค้ดตัวอย่างไฟล์ Manifest ต่อไปนี้แสดงส่วนของไฟล์ Manifest ที่กำหนดมาโครของชีต ส่วน sheets ของไฟล์ Manifest จะกำหนดชื่อและแป้นพิมพ์ลัดที่กำหนดให้กับมาโคร รวมถึงชื่อของฟังก์ชันมาโคร

ไฟล์ Manifest มีคอมโพเนนต์อื่นๆ ที่เกี่ยวข้องกับพร็อพเพอร์ตี้ Apps Script ช่องในคีย์ sheets จะเกี่ยวข้องโดยตรงกับฟังก์ชันการทำงานของชีต ตัวอย่างนี้เป็นเพียงส่วนหนึ่งของไฟล์ Manifest แบบเต็มและไม่ใช่ไฟล์ Manifest ที่ทำงานได้อย่างสมบูรณ์

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

ดูรายละเอียดเพิ่มเติมเกี่ยวกับวิธีสร้างไฟล์ Manifest ของมาโครของชีตได้ที่แหล่งข้อมูลไฟล์ Manifest ของมาโครของชีต

แนวทางปฏิบัติแนะนำ

เมื่อสร้างหรือจัดการมาโครใน Apps Script ให้ทำตามหลักเกณฑ์ต่อไปนี้

  1. มาโครจะทำงานได้ดีขึ้นเมื่อมีขนาดเล็ก จำกัดจำนวนการดำเนินการที่มาโครทำได้หากเป็นไปได้
  2. มาโครเหมาะที่สุดสำหรับการดำเนินการที่ต้องทำซ้ำบ่อยๆ โดยมีการกำหนดค่าเพียงเล็กน้อยหรือไม่ต้องกำหนดค่าเลย สำหรับการดำเนินการอื่นๆ ให้พิจารณา ใช้ รายการในเมนูที่กำหนดเอง แทน
  3. โปรดทราบเสมอว่าแป้นพิมพ์ลัดของมาโครต้องไม่ซ้ำกัน และชีตหนึ่งๆ จะมีมาโครที่มีแป้นพิมพ์ลัดได้เพียง 10 รายการในเวลาใดก็ตาม ส่วนมาโครอื่นๆ จะเรียกใช้ได้จากเมนูส่วนขยาย > มาโคร เท่านั้น
  4. คุณสามารถใช้มาโครที่ทำการเปลี่ยนแปลงในเซลล์เดียวกับช่วงของเซลล์ได้โดยเลือกช่วงทั้งหมดก่อน แล้วจึงเปิดใช้งานมาโคร ซึ่งหมายความว่าคุณไม่จำเป็นต้องสร้างมาโครที่ทำซ้ำการดำเนินการเดียวกันในเซลล์ช่วงที่กำหนดไว้ล่วงหน้า

สิ่งที่คุณทำไม่ได้

มีข้อจำกัดบางประการเกี่ยวกับสิ่งที่คุณทำได้ด้วยมาโคร

ใช้มาโครนอกสคริปต์ที่ผูกไว้

มาโครกำหนดไว้ในสคริปต์ที่ผูกกับชีตที่เฉพาะเจาะจง ระบบจะละเว้นการกำหนดมาโคร หากกำหนดไว้ใน สคริปต์แบบสแตนด์อโลนหรือ เว็บแอป

กำหนดมาโครในส่วนเสริม Google Workspace ของชีต

คุณไม่สามารถเผยแพร่การกำหนดมาโครโดยใช้ส่วนเสริม Google Workspace ของชีต ผู้ใช้ส่วนเสริมนั้นจะละเว้นการกำหนดมาโครในโปรเจ็กต์ส่วนเสริมของชีต

เผยแพร่มาโครในไลบรารีสคริปต์

คุณไม่สามารถเผยแพร่การกำหนดมาโครโดยใช้ไลบรารี Apps Script

ใช้มาโครนอกชีต

มาโครเป็นฟีเจอร์ในชีตเท่านั้น และไม่มีใน Google เอกสาร, ฟอร์ม หรือ Google สไลด์