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

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

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

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

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

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

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

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

การแก้ไขมาโคร

คุณสามารถแก้ไขมาโครที่แนบอยู่กับชีตได้โดยทำดังนี้

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

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

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

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

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

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

ตัวอย่างข้อมูลโค้ดตัวอย่างไฟล์ Manifest ต่อไปนี้แสดงส่วนไฟล์ Manifest ที่กำหนดมาโคร Google ชีต ส่วน sheets ของไฟล์ 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. มาโครเหมาะที่สุดสำหรับการดำเนินการแบบ Rote ที่ต้องทำซ้ำบ่อยๆ โดยมีการกำหนดค่าน้อยหรือไม่มีเลย สำหรับการดำเนินการอื่นๆ ให้พิจารณาใช้รายการในเมนูที่กำหนดเองแทน
  3. โปรดอย่าลืมว่าแป้นพิมพ์ลัดมาโครต้องไม่ซ้ำกัน และชีตหนึ่งๆ จะมีมาโครที่มีทางลัดได้เพียงครั้งละ 10 รายการเท่านั้น คุณจะใช้มาโครเพิ่มเติมได้จากเมนูส่วนขยาย > มาโคร
  4. มาโครที่ทำการเปลี่ยนแปลงในเซลล์เดียวสามารถใช้กับช่วงของเซลล์ได้ด้วยการเลือกทั้งช่วงก่อน แล้วจึงเปิดใช้งานมาโคร ซึ่งหมายความว่า คุณไม่จำเป็นต้องสร้างมาโครที่ทำซ้ำการดำเนินการเดียวกันในช่วงของเซลล์ที่กำหนดไว้ล่วงหน้า

สิ่งที่ทำไม่ได้

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

ใช้มาโครนอกสคริปต์ที่เชื่อมโยง

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

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

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

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

คุณแจกจ่ายคำจำกัดความมาโครโดยใช้ไลบรารี Apps Script ไม่ได้

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

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