มาโครของ 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 สไลด์