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