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 ได้โดยทำตามขั้นตอนต่อไปนี้
- ใน UI ของ Google ชีต ให้เลือกส่วนขยาย > Apps Script เพื่อเปิดสคริปต์ที่ผูกกับชีตในเครื่องมือแก้ไข Apps Script
- เขียนฟังก์ชันมาโคร ฟังก์ชันมาโครไม่ควรมีอาร์กิวเมนต์ และไม่แสดงค่า
- แก้ไขไฟล์ Manifest ของสคริปต์เพื่อสร้างมาโครและลิงก์กับฟังก์ชันมาโคร กำหนดแป้นพิมพ์ลัด และชื่อที่ไม่ซ้ำกันให้กับคีย์นั้น
- บันทึกโปรเจ็กต์สคริปต์ จากนั้นมาโครจะพร้อมใช้งานในชีต
- ทดสอบฟังก์ชันมาโครในชีตเพื่อยืนยันว่าฟังก์ชันนั้นทำงานได้ตามที่ต้องการ
การแก้ไขมาโคร
คุณสามารถแก้ไขมาโครที่แนบอยู่กับชีตได้โดยทำตามขั้นตอนต่อไปนี้
- ใน UI ของ Google ชีต ให้เลือกส่วนขยาย > มาโคร > จัดการมาโคร
- ค้นหามาโครที่ต้องการแก้ไข แล้วเลือก > แก้ไขมาโคร ซึ่งจะเปิดเครื่องมือแก้ไข Apps Script สำหรับไฟล์โปรเจ็กต์ที่มีฟังก์ชันมาโคร
- แก้ไขฟังก์ชันของมาโครเพื่อเปลี่ยนลักษณะการทำงานของมาโคร
- บันทึกโปรเจ็กต์สคริปต์ จากนั้นมาโครจะพร้อมใช้งานในชีต
- ทดสอบฟังก์ชันมาโครในชีตเพื่อยืนยันว่าฟังก์ชันนั้นทำงานได้ตามที่ต้องการ
การนำเข้าฟังก์ชันเป็นมาโคร
หากมีสคริปต์ที่เชื่อมโยงกับชีตอยู่แล้ว คุณจะimportฟังก์ชันในสคริปต์เป็นมาโครใหม่ แล้วกำหนดแป้นพิมพ์ลัดให้กับฟังก์ชันดังกล่าวได้ ซึ่งทำได้โดยการแก้ไขไฟล์ Manifest และเพิ่มองค์ประกอบอื่นลงในพร็อพเพอร์ตี้ sheets.macros[]
หรือทำตามขั้นตอนต่อไปนี้เพื่อนำเข้าฟังก์ชันเป็นมาโครจาก UI ของชีต
- ใน UI ของ Google ชีต ให้เลือกส่วนขยาย > มาโคร > นำเข้า
- เลือกฟังก์ชันจากรายการที่แสดง แล้วคลิกเพิ่มฟังก์ชัน
- เลือก เพื่อปิดกล่องโต้ตอบ
- เลือกส่วนขยาย > มาโคร > จัดการมาโคร
- ค้นหาฟังก์ชันที่คุณเพิ่งนำเข้าในรายการ กำหนดแป้นพิมพ์ลัด ที่ไม่ซ้ำกันให้กับมาโคร คุณยังเปลี่ยนชื่อมาโครได้ที่นี่ โดยชื่อจะใช้ค่าเริ่มต้นเป็นชื่อของฟังก์ชัน
- คลิกอัปเดตเพื่อบันทึกการกำหนดค่ามาโคร
โครงสร้างไฟล์ 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 ขอแนะนําให้คุณปฏิบัติตามหลักเกณฑ์ต่อไปนี้
- มาโครจะมีประสิทธิภาพมากขึ้นเมื่อมีน้ำหนักเบา หากเป็นไปได้ ให้จำกัดจำนวนการดำเนินการ ที่มาโครจะทำ
- มาโครเหมาะที่สุดสำหรับการดำเนินการท่องจำที่ต้องทำซ้ำบ่อย โดยมีการกำหนดค่าน้อยหรือไม่ต้องกำหนดค่าเลย สำหรับการดำเนินการอื่นๆ ให้พิจารณาใช้รายการในเมนูที่กำหนดเองแทน
- โปรดอย่าลืมว่าแป้นพิมพ์ลัดมาโครต้องไม่ซ้ำกัน และชีตหนึ่งๆ จะมีมาโครที่มีแป้นพิมพ์ลัดได้เพียงครั้งละ 10 รายการเท่านั้น คุณจะใช้มาโครอื่นๆ ได้จากเมนูส่วนขยาย > มาโครเท่านั้น
- มาโครที่ทำการเปลี่ยนแปลงเซลล์เดียวสามารถนำไปใช้กับช่วงเซลล์ได้ด้วยการเลือกแบบเต็มช่วงก่อน แล้วจึงเปิดใช้งานมาโคร ซึ่งหมายความว่า คุณไม่จำเป็นต้องสร้างมาโครที่ทำซ้ำการดำเนินการเดียวกันในช่วงของเซลล์ที่กำหนดไว้ล่วงหน้า
สิ่งที่ทำไม่ได้
มีข้อจำกัดบางประการเกี่ยวกับสิ่งที่คุณสามารถทำได้ด้วยมาโคร:
ใช้มาโครภายนอกสคริปต์ที่เชื่อมโยง
มาโครจะกำหนดในสคริปต์ที่เชื่อมโยงกับ Google ชีตที่เฉพาะเจาะจง ระบบจะไม่สนใจคำจำกัดความมาโครหากกำหนดไว้ในสคริปต์แบบสแตนด์อโลนหรือเว็บแอป
กำหนดมาโครในส่วนเสริมของชีต
คุณเผยแพร่คำจำกัดความมาโครโดยใช้ส่วนเสริมของชีตไม่ได้ ผู้ใช้ส่วนเสริมดังกล่าวจะไม่สนใจคำจำกัดความมาโครทั้งหมดในโปรเจ็กต์ส่วนเสริมของชีต
แจกจ่ายมาโครในไลบรารีสคริปต์
คุณแจกจ่ายคำจำกัดความมาโครโดยใช้ไลบรารี Apps Script ไม่ได้
ใช้มาโครนอก Google ชีต
มาโครเป็นฟีเจอร์ใน Google ชีตเท่านั้นและไม่มีอยู่ใน Google เอกสาร ฟอร์ม หรือสไลด์