
หากคุณพบว่าตัวเองต้องคลิก จัดรูปแบบ และปรับแต่งข้อมูลใน Excel ด้วยขั้นตอนเดิมซ้ำๆ ทุกวัน นั่นหมายความว่าคุณกำลังเสียเวลาอันมีค่าไป ข่าวดีก็คือ Excel มี "เครื่องบันทึกเทป" ในตัวที่สามารถจดจำการกระทำเหล่านี้และเล่นซ้ำได้ในเวลาเพียงเสี้ยววินาที เครื่องมือนี้เรียกว่า Macro (แมโคร)
การเรียนรู้วิธีใช้ Macro ใน Excel มักจะเป็นก้าวสำคัญที่สุดที่เปลี่ยนผู้ใช้ระดับเริ่มต้นให้กลายเป็นผู้ใช้ระดับโปร (Power User) การทำระบบอัตโนมัติจะช่วยขจัดข้อผิดพลาดจากการป้อนข้อมูลด้วยตนเอง ทำให้งานมีความสอดคล้องกัน และเพิ่มเวลาว่างให้คุณสำหรับการวิเคราะห์ที่สำคัญกว่า อันที่จริง การเรียนรู้ระบบ Macro อัตโนมัติคือวิธีที่ผู้เชี่ยวชาญหลายคนใช้เพื่อลดภาระงานลงอย่างมาก—คุณสามารถอ่านเพิ่มเติมได้ว่า สตาร์ทอัพแห่งหนึ่งประหยัดเวลาได้ถึง 20 ชั่วโมงต่อสัปดาห์ด้วยระบบอัตโนมัติของ Excel ได้อย่างไร
ในคู่มือฉบับสมบูรณ์นี้ เราจะพาคุณไปทำความรู้จักว่า Macro คืออะไร วิธีการเปิดใช้งานเครื่องมือที่จำเป็น รวมถึงวิธีการบันทึก รัน และแก้ไข Macro แรกใน Excel ของคุณ
โดยพื้นฐานแล้ว Macro คือลำดับของการกระทำหรือคำสั่งที่ถูกบันทึกไว้ ซึ่งคุณสามารถเรียกใช้งานได้ด้วยคำสั่งเพียงคำสั่งเดียว ในเบื้องหลัง เมื่อคุณบันทึก Macro ระบบ Excel จะแปลการคลิกเมาส์และการกดแป้นพิมพ์ของคุณให้เป็นภาษาโปรแกรมที่เรียกว่า VBA (Visual Basic for Applications)
คุณไม่จำเป็นต้องรู้วิธีเขียนโค้ด VBA ก็สามารถสร้าง Macro ที่มีประสิทธิภาพสูงได้ ด้วยการใช้ Macro Recorder (ตัวบันทึกแมโคร) คุณเพียงแค่ทำงานของคุณไปตามปกติ—เช่น การจัดรูปแบบตัวหนา การแทรกสูตร IF หรือ SUM หรือการปรับความกว้างของคอลัมน์—แล้ว Excel จะเขียนโค้ดที่จำเป็นให้คุณโดยอัตโนมัติ
ตามค่าเริ่มต้น เครื่องมือที่จำเป็นในการบันทึกและจัดการ Macro จะถูกซ่อนไว้ใน Excel เพื่อป้องกันไม่ให้ผู้ใช้มือใหม่เผลอไปปรับเปลี่ยนเวิร์กบุ๊กโดยไม่ได้ตั้งใจ ขั้นตอนแรกของคุณคือการเปิดใช้งานแท็บ Developer (นักพัฒนา)
ตอนนี้คุณควรจะเห็นแท็บ Developer ปรากฏอยู่บน Ribbon ของ Excel ถัดจากแท็บ View (มุมมอง) หรือ Help (วิธีใช้) แท็บนี้คือศูนย์ควบคุมของคุณสำหรับทุกสิ่งที่เกี่ยวข้องกับ Macro และระบบอัตโนมัติ
มาดูตัวอย่างการใช้งานจริงกัน สมมติว่าคุณต้องส่งออกรายงานข้อมูลการขายจากซอฟต์แวร์ของบริษัททุกเช้า ข้อมูลดิบที่ได้มักจะดูไม่เป็นระเบียบ: คอลัมน์แคบเกินไป ส่วนหัวยังไม่ได้จัดรูปแบบ และคุณต้องเพิ่มแถวผลรวมที่ด้านล่างโดยใช้ฟังก์ชัน SUM เสมอ
แทนที่จะต้องทำสิ่งนี้ด้วยตัวเองทุกวัน เราจะบันทึก Macro เพื่อจัดรูปแบบรายงานนี้ในพริบตา
ก่อนที่คุณจะกดบันทึก การวางแผนขั้นตอนเป็นสิ่งสำคัญมาก Macro Recorder จะบันทึกตามจริงทุกอย่าง ไม่ว่าจะเป็นข้อผิดพลาด การคลิกที่เกินมา และการเลื่อนหน้าจอ การรู้ลำดับขั้นตอนล่วงหน้าจะช่วยให้มั่นใจได้ว่า Macro ของคุณจะทำงานได้อย่างหมดจดและมีประสิทธิภาพ
สำหรับตัวอย่างนี้ เราจะสมมติว่าคุณมีข้อมูลในคอลัมน์ A ถึง D โดยมีส่วนหัวอยู่ในแถวที่ 1 ขั้นตอนที่เราวางแผนไว้คือ:
=SUM(D2:D100) (สมมติว่าข้อมูลของคุณมีถึงแถวที่ 100) กด Enterขอแสดงความยินดี! คุณเพิ่งบันทึก Macro แรกของคุณสำเร็จแล้ว
เพื่อทดสอบประสิทธิภาพของสิ่งที่คุณเพิ่งสร้างขึ้น มาลองยกเลิกการจัดรูปแบบกัน กด Ctrl + Z หลายๆ ครั้งจนกว่าข้อมูลของคุณจะกลับไปสู่สภาพดิบๆ ที่ดูไม่สวยงาม ทีนี้มารัน Macro เพื่อดู Excel จัดการงานแทนคุณกันเลย
ในเวลาไม่ถึงหนึ่งวินาที Excel จะเลือกส่วนหัว ใช้การจัดรูปแบบตัวหนาและสีน้ำเงิน ปรับขนาดคอลัมน์ของคุณ และแทรกฟังก์ชัน SUM งานที่อาจต้องใช้เวลา 30 วินาทีเมื่อทำด้วยตนเอง ตอนนี้ใช้เวลาเพียงไม่กี่มิลลิวินาทีเท่านั้น
คุณไม่จำเป็นต้องเป็นโปรแกรมเมอร์เพื่อแอบดูเบื้องหลังการทำงาน การเข้าใจโค้ดที่ Excel สร้างขึ้นจะช่วยให้คุณสามารถปรับแต่งเล็กๆ น้อยๆ ได้โดยไม่ต้องบันทึก Macro ใหม่ทั้งหมด
เพื่อดูโค้ดของคุณ ให้ไปที่แท็บ Developer (นักพัฒนา) แล้วคลิก Visual Basic (หรือกด Alt + F11) นี่จะเป็นการเปิด VBA Editor ขึ้นมา ทางด้านซ้าย ให้ดับเบิลคลิกที่ Modules แล้วเลือก Module1 คุณจะเห็นหน้าตาของโค้ดที่คล้ายกับสิ่งนี้:
Sub FormatDailyReport()
'
' FormatDailyReport Macro
' Formats headers, autofits columns, and adds a total.
'
Rows("1:1").Select
Selection.Font.Bold = True
With Selection.Interior
.ThemeColor = xlThemeColorLight2
.TintAndShade = 0
End With
Columns("A:D").Select
Selection.EntireColumn.AutoFit
Range("D101").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-99]C:R[-1]C)"
End Sub
ถึงแม้ว่าคุณจะไม่รู้จัก VBA คุณก็น่าจะพอเดาตรรกะของมันได้ Rows("1:1").Select หมายความว่า Excel เลือกแถวแรก Selection.Font.Bold = True หมายความว่าสั่งให้เป็นตัวหนา หากคุณต้องการเปลี่ยนคอลัมน์ที่เลือกจาก A ถึง F แทนที่จะเป็น A ถึง D คุณสามารถเข้าไปแก้ Columns("A:D").Select ให้เป็น Columns("A:F").Select ได้โดยตรงในโปรแกรมแก้ไขข้อความแล้วกดบันทึก
หากคุณสนใจที่จะเรียนรู้วิธีการเขียนสคริปต์เหล่านี้ตั้งแต่ต้น การเข้าไปอ่านเกี่ยวกับ พื้นฐาน VBA จะเป็นก้าวต่อไปที่ยอดเยี่ยมของคุณ
หนึ่งในอุปสรรคที่พบบ่อยที่สุดสำหรับผู้เริ่มต้นคือเรื่องของวิธีที่ Macro ทำการเลือกเซลล์ ตามค่าเริ่มต้นแล้ว Macro Recorder จะใช้ Absolute References (การอ้างอิงแบบสัมบูรณ์) ซึ่งหมายความว่า หากคุณคลิกที่เซลล์ B5 ระหว่างการบันทึก Macro ก็จะคลิกไปที่เซลล์ B5 เสมอทุกครั้งที่เรียกใช้งาน โดยไม่สนว่าเคอร์เซอร์ของคุณจะอยู่ที่ตำแหน่งใดในขณะนั้น
ในบางครั้ง คุณอาจต้องการให้ Macro จัดรูปแบบเซลล์โดยอิงตามตำแหน่งเคอร์เซอร์ปัจจุบันของคุณ สำหรับกรณีนี้ คุณต้องเปิดการทำงานของ Use Relative References (ใช้การอ้างอิงแบบสัมพัทธ์) (อยู่ใต้ปุ่ม Record Macro ในแท็บ Developer) ก่อนที่คุณจะเริ่มทำการบันทึก
หากคุณยังไม่คุ้นเคยกับแนวคิดนี้ คุณสามารถทบทวนเรื่อง การอ้างอิงแบบสัมพัทธ์เทียบกับแบบสัมบูรณ์ เพื่อทำความเข้าใจวิธีที่ Excel จัดการกับตำแหน่งต่างๆ ด้านล่างนี้คือตารางเปรียบเทียบสั้นๆ ว่าทั้งสองโหมดทำงานอย่างไรในตัวบันทึก Macro:
| โหมดการบันทึก | วิธีการทำงาน | เหมาะที่สุดสำหรับ... |
|---|---|---|
| Absolute References (ค่าเริ่มต้น) | บันทึกที่อยู่เซลล์แบบเป๊ะๆ (เช่น Range("C10").Select) Macro จะกลับมาที่ C10 เสมอ | การจัดรูปแบบส่วนหัวที่ตายตัว การใช้ ฟังก์ชัน VLOOKUP กับตารางข้อมูลแบบสแตติกที่เฉพาะเจาะจง หรือการใส่ชื่อเรื่องในเซลล์ A1 |
| Relative References | บันทึกระยะห่างจากเซลล์ที่ใช้งานอยู่ (เช่น ActiveCell.Offset(1, 0).Select) | การสร้าง Macro ที่จัดรูปแบบ "แถวถัดไปด้านล่าง" หรือใช้สไตล์ที่เจาะจงกับเซลล์ใดก็ตามที่คุณกำลังเลือกอยู่ |
เพื่อให้แน่ใจว่า Macro ของคุณทำงานได้อย่างราบรื่นทุกครั้ง โปรดจำแนวทางปฏิบัติที่ดีที่สุดสำหรับผู้เริ่มต้นเหล่านี้ไว้:
การบันทึก Macro เป็นจุดเริ่มต้นที่สมบูรณ์แบบในการก้าวเข้าสู่ระบบอัตโนมัติของสเปรดชีต เมื่อคุณเชี่ยวชาญการใช้เครื่องมือบันทึกแล้ว คุณจะเริ่มมองเห็นคอขวดอื่นๆ ในกิจวัตรประจำสัปดาห์ของคุณได้เอง ในท้ายที่สุด คุณอาจขยับไปสู่ การทำรายงานอัตโนมัติด้วย Excel VBA แบบเต็มรูปแบบ ซึ่งการดึงข้อมูล การทำความสะอาดข้อมูล และการส่งอีเมล สามารถทำได้โดยไม่ต้องใช้มือทำเลย
อย่างไรก็ตาม การเรียนรู้ไวยากรณ์การเขียนโปรแกรมก็ไม่ใช่สำหรับทุกคน หากคุณพบว่าตัวเองกำลังดิ้นรนกับการคิดสูตร INDEX, MATCH หรือ IF ที่ถูกต้องเพื่อใส่ลงใน Macro ของคุณ คุณไม่ต้องเสียเวลาหลายชั่วโมงไปกับการค้นหาใน Google อีกต่อไป เพียงแค่อธิบายสิ่งที่คุณต้องการจะทำเป็นข้อความภาษาทั่วไปให้กับ GPTExcel ฟัง แล้วระบบจะสร้างสูตรหรือชุดคำสั่ง VBA ที่สมบูรณ์แบบออกมาให้คุณนำไปวางในเวิร์กบุ๊กของคุณได้ทันที
ด้วยการผสานเครื่องมือ Macro Recorder ที่มีอยู่แล้วเข้ากับเครื่องมือ AI สมัยใหม่ คุณก็สามารถจัดการงานซ้ำซากจำเจบนโต๊ะทำงานของคุณให้เป็นอัตโนมัติได้แทบทุกอย่าง เพื่อให้คุณมีเวลามากขึ้นในการโฟกัสกับสิ่งที่สำคัญจริงๆ
Macro ที่คุณบันทึกด้วยตัวเองนั้นปลอดภัย 100% อย่างไรก็ตาม เนื่องจาก VBA เป็นภาษาโปรแกรมที่มีประสิทธิภาพสูง บุคคลที่สามจึงสามารถเขียนโค้ดที่เป็นอันตรายแทรกเข้ามาใน Macro ได้ คุณควรเรียกใช้ Macro จากเวิร์กบุ๊กที่ดาวน์โหลดจากแหล่งที่เชื่อถือได้เท่านั้น นี่คือสาเหตุที่ Excel ปิดการใช้งาน Macro ไว้เป็นค่าเริ่มต้น และแสดงคำเตือนด้านความปลอดภัยเมื่อคุณเปิดไฟล์ .xlsm
ไม่ได้ คุณไม่สามารถใช้ปุ่ม Undo (เลิกทำ หรือ Ctrl + Z) เพื่อย้อนกลับการกระทำของ Macro ได้ ก่อนที่จะทำการทดสอบ Macro ใหม่กับข้อมูลสำคัญ ขอแนะนำอย่างยิ่งให้คุณบันทึกสำเนาเวิร์กบุ๊กของคุณเผื่อเอาไว้ หาก Macro ทำงานผิดพลาด คุณสามารถปิดไฟล์ได้โดยไม่ต้องบันทึก แล้วเปิดไฟล์สำรองของคุณขึ้นมาใหม่
ไฟล์ Excel มาตรฐาน (.xlsx) จะถูกตัดโค้ดใดๆ ออกไปเพื่อเหตุผลด้านความปลอดภัย หากคุณพยายามจะบันทึกเวิร์กบุ๊กที่มี Macro เป็นไฟล์ .xlsx ระบบ Excel จะแสดงคำเตือนขึ้นมา เพื่อเป็นการรักษา Macro ที่คุณบันทึกไว้ คุณจะต้องเปลี่ยนประเภทไฟล์ในเมนูแบบเลื่อนลง "Save as type (บันทึกเป็นชนิด)" ให้เป็น "Excel Macro-Enabled Workbook (*.xlsm)"
ได้อย่างแน่นอน ในขณะที่บันทึก Macro ไม่ว่าคุณจะพิมพ์สูตรใดลงในเซลล์—ไม่ว่าจะเป็นสูตร SUM ง่ายๆ หรือคำสั่ง IF ที่ซ้อนกันอย่างซับซ้อน—ก็จะถูกบันทึกไว้ทั้งหมด เมื่อคุณนำ Macro ไปรันในภายหลัง Excel จะแทรกสูตรนั้นๆ ลงในเซลล์ที่กำหนดและคำนวณผลลัพธ์ให้คุณทันที
ค้นพบวิธีทำระบบอัตโนมัติสำหรับงาน Excel โดยไม่ต้องใช้ VBA ด้วย Power Automate เรียนรู้วิธีสร้าง Flow ที่ทำงานตาม Event, ประมวลผลข้อมูล และเชื่อมต่อกับแอปอื่นๆ
ค้นพบวิธีสร้างระบบรายงานอัตโนมัติใน Excel ด้วย VBA เรียนรู้วิธีดึงข้อมูล แทรกสูตร จัดรูปแบบเซลล์ และส่งออกรายงานพร้อมโค้ดแบบทีละขั้นตอน
เริ่มต้นเขียนโปรแกรมใน Excel ด้วย VBA เรียนรู้แท็บ Developer, ตัวแปร, ลูป, เงื่อนไข และวิธีเขียนมาโครแรกของคุณให้ใช้งานได้จริงตั้งแต่เริ่มต้น