มาโครของ 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. คลิก Update เพื่อบันทึกการกําหนดค่ามาโคร

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

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

การใช้มาโครมีข้อจำกัดบางประการ ดังนี้

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

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

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

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

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

คุณไม่สามารถเผยแพร่คําจํากัดความมาโครโดยใช้ไลบรารี Apps Script

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

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