Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ซอฟต์แวร์ >> Office

Master Excel VBA:ทำความเข้าใจมาโคร โมดูล และขั้นตอน

Master Excel VBA:ทำความเข้าใจมาโคร โมดูล และขั้นตอน

 

Excel Visual Basic for Applications (VBA) เป็นภาษาการเขียนโปรแกรมที่มีประสิทธิภาพ VBA ช่วยให้คุณสามารถทำงานอัตโนมัติ สร้างฟังก์ชันแบบกำหนดเอง และปรับปรุงฟังก์ชันสเปรดชีตได้ หากคุณเริ่มต้นด้วย VBA การทำความเข้าใจคำศัพท์สำคัญ เช่น Macro, Module และ Procedure ถือเป็นสิ่งสำคัญ แนวคิดเหล่านี้เชื่อมโยงถึงกัน แต่มีจุดประสงค์ที่แตกต่างกัน

ในบทช่วยสอนนี้ เราจะพูดถึงคำศัพท์เฉพาะของ Excel VBA:มาโคร กับ โมดูล และ กระบวนการ เราจะแจกแจงรายละเอียดพร้อมคำอธิบาย ตัวอย่าง และเคล็ดลับที่นำไปใช้ได้จริงเพื่อช่วยคุณในการเริ่มต้น

หากต้องการดำเนินการต่อ คุณจะต้องใช้ Excel (เวอร์ชันใดก็ได้ตั้งแต่ปี 2007 เป็นต้นไป) โดยเปิดใช้งานแท็บนักพัฒนาซอฟต์แวร์

  • หากมองไม่เห็น ให้ไปที่ไฟล์ แท็บ>> เลือก ตัวเลือก>> เลือก ปรับแต่ง Ribbon>> เลือก นักพัฒนาซอฟต์แวร์ ทางด้านขวา

1. มาโครคืออะไร?

แมโครเป็นจุดเริ่มต้นที่เป็นมิตรต่อผู้ใช้มากที่สุดใน VBA โดยพื้นฐานแล้วเป็นชุดคำสั่งที่บันทึกไว้หรือเป็นลายลักษณ์อักษรซึ่งทำให้งานซ้ำๆ ใน Excel เป็นแบบอัตโนมัติ สามารถสร้างมาโครได้โดยไม่ต้องมีความรู้ด้านการเขียนโปรแกรมเชิงลึกโดยใช้ Macro Recorder ของ Excel โดยจะบันทึกการกระทำของคุณ เช่น การจัดรูปแบบเซลล์หรือการแทรกสูตร และแปลงเป็นโค้ด VBA

ในทางปฏิบัติ เมื่อมีคนพูดว่า “ฉันบันทึกแมโคร” หรือ “ฉันเขียนแมโคร” พวกเขามักจะพูดถึงขั้นตอนย่อยที่จัดเก็บไว้ในโมดูล เครื่องบันทึกแมโครของ Excel จะสร้างขั้นตอนย่อยโดยอัตโนมัติ

ลักษณะสำคัญ:

  • วัตถุประสงค์: ทำงานอัตโนมัติเพื่อประหยัดเวลา ตัวอย่างเช่น มาโครสามารถจัดเรียงข้อมูล ใช้ตัวกรอง หรือสร้างรายงานได้ด้วยคลิกเดียว
  • วิธีการสร้าง:
    • บันทึกแล้ว: ใช้ Macro Recorder สำหรับงานง่ายๆ
    • เขียน: แก้ไขหรือเขียนโค้ดด้วยตนเองในตัวแก้ไข VBA เพื่อตรรกะที่ซับซ้อนมากขึ้น
  • ขอบเขต: โดยปกติแล้วมาโครจะถูกจัดเก็บไว้ในสมุดงานและสามารถเรียกใช้ได้จากปุ่ม ทางลัด หรือกล่องโต้ตอบมาโคร
  • ข้อจำกัด: มาโครที่บันทึกไว้มักจะมีโค้ดที่ไม่จำเป็น (เช่น การเลือกเซลล์) และการอ้างอิงเซลล์อาจดูซับซ้อน ดังนั้นจึงมักจะถูกล้างข้อมูลด้วยตนเอง

มาโคร ≠ VBA: VBA เป็นภาษาโปรแกรม มาโครเป็นระบบอัตโนมัติที่รันได้ซึ่งสร้างโดยใช้ VBA (หรือบันทึกลงใน VBA)

ตัวอย่าง:การสร้างและการเรียกใช้มาโครอย่างง่าย

  • ไปที่นักพัฒนาซอฟต์แวร์ แท็บ>> เลือก บันทึกมาโคร
  • ตั้งชื่อเป็น ApplyFormat (ไม่มีการเว้นวรรค)>> กำหนดทางลัดหากต้องการ>> คลิก ตกลง

Master Excel VBA:ทำความเข้าใจมาโคร โมดูล และขั้นตอน

  • ดำเนินการ:
    • เลือกส่วนหัว
    • ไปที่หน้าแรก แท็บ>> เลือก ตัวหนา
    • ใช้ เติม สีและแบบอักษร สี
  • หยุดการบันทึก:ไปที่นักพัฒนาซอฟต์แวร์ แท็บ>> คลิก หยุดการบันทึก

Master Excel VBA:ทำความเข้าใจมาโคร โมดูล และขั้นตอน

เบื้องหลัง Excel จะสร้างโค้ด VBA ดังนี้:

Sub ApplyFormat()
'
' ApplyFormat Macro
'
' Keyboard Shortcut: Ctrl+Shift+F
'
 Range("A1:G1").Select
 Selection.Font.Bold = True
 With Selection.Interior
 .Pattern = xlSolid
 .PatternColorIndex = xlAutomatic
 .ThemeColor = xlThemeColorAccent6
 .TintAndShade = -0.249977111117893
 .PatternTintAndShade = 0
 End With
 With Selection.Font
 .ThemeColor = xlThemeColorDark1
 .TintAndShade = 0
 End With
End Sub
  • นี่คือ Sub (ย่อมาจาก Subroutine) ซึ่งเป็นประเภทของขั้นตอน

Master Excel VBA:ทำความเข้าใจมาโคร โมดูล และขั้นตอน

เรียกใช้มาโคร:

  • ไปที่นักพัฒนาซอฟต์แวร์ แท็บ>> เลือก มาโคร
  • เลือก ใช้รูปแบบ>> เลือก เรียกใช้
  • หรือกด Ctrl+Shift+F

Master Excel VBA:ทำความเข้าใจมาโคร โมดูล และขั้นตอน

ตอนนี้คุณสามารถสร้างและใช้มาโครเพื่อการทำงานอัตโนมัติที่รวดเร็วโดยไม่ต้องมีความเชี่ยวชาญในการเขียนโค้ด

2. ขั้นตอนคืออะไร?

ขั้นตอนการทำงานเป็นหน่วยพื้นฐานที่สุด เป็นบล็อกของโค้ด VBA ที่ทำงานเฉพาะเจาะจง ให้คิดว่าเป็นชุดคำสั่งที่ Excel ปฏิบัติตามเมื่อคุณเรียกใช้ ขั้นตอนคือจุดที่ตรรกะมีอยู่จริง คิดว่ามันเป็นฟังก์ชันหรือวิธีการในภาษาอื่น

ลักษณะสำคัญ:

  • ประเภท:
    • ขั้นตอนย่อย (ย่อย): ดำเนินการแต่ไม่ส่งคืนค่า นี่คือสิ่งที่คนส่วนใหญ่หมายถึงโดยคำว่า "มาโคร" ในบริบท VBA เริ่มต้นด้วย Sub และลงท้ายด้วย End Sub
    • ขั้นตอนการทำงาน (ฟังก์ชัน): ดำเนินการคำนวณและส่งกลับค่า เริ่มต้นด้วย Function และสิ้นสุดด้วย End Function มีประโยชน์สำหรับสูตรที่กำหนดเองในเวิร์กชีท
  • วัตถุประสงค์: สร้างรหัสที่นำมาใช้ซ้ำได้ ขั้นตอนอาจรวมถึงการวนซ้ำ เงื่อนไข ตัวแปร และการโต้ตอบกับออบเจ็กต์ Excel (เช่น เซลล์หรือแผนภูมิ)
  • ขอบเขต: สามารถเป็นแบบสาธารณะ (เข้าถึงได้จากทุกที่) หรือแบบส่วนตัว (จำกัดเฉพาะโมดูล)
  • พารามิเตอร์: สามารถยอมรับอินพุต (อาร์กิวเมนต์) เพื่อความยืดหยุ่น

ตัวอย่าง:ขั้นตอนย่อยกับขั้นตอนการทำงาน

  • ไปที่นักพัฒนาซอฟต์แวร์ แท็บ>> เลือก Visual Basic (หรือกด Alt+F11 )
  • คลิก แทรก>> เลือก โมดูล

ขั้นตอนย่อย (เช่น มาโคร):

Sub ClearFormatting()
 Range("A1:G1").ClearFormats
 MsgBox "Formatting is cleared"
End Sub
  • เรียกใช้โค้ดเพื่อล้างการจัดรูปแบบ จากนั้นแสดงข้อความระบุว่า "ล้างการจัดรูปแบบแล้ว"

Master Excel VBA:ทำความเข้าใจมาโคร โมดูล และขั้นตอน

ขั้นตอนการทำงาน:

Function Multiply(num1 As Integer, num2 As Integer) As Integer
 Multiply = num1 * num2
End Function
  • ใช้ในเซลล์ เช่น =คูณ(E2,F2) เพื่อคูณค่า

Master Excel VBA:ทำความเข้าใจมาโคร โมดูล และขั้นตอน

ความสัมพันธ์กับมาโคร: แมโครทั้งหมดเป็นขั้นตอนย่อย แต่ไม่ใช่ทุกขั้นตอนย่อยจะถูกบันทึกแมโคร คุณสามารถเขียนขั้นตอนย่อยขั้นสูงที่นอกเหนือไปจากการบันทึกแบบธรรมดาได้

ใช้ขั้นตอนเมื่อคุณต้องการโค้ดที่มีโครงสร้างและนำมาใช้ซ้ำได้ แบ่งงานที่ซับซ้อนออกเป็นหลายขั้นตอนเพื่อองค์กรที่ดีขึ้น

3. โมดูลคืออะไร?

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

ประเภทของโมดูล:

  • โมดูลมาตรฐาน: ประเภทที่พบบ่อยที่สุด ที่คุณเขียนโค้ดวัตถุประสงค์ทั่วไป
    • สิ่งเหล่านี้ปรากฏใน VBA Project Explorer ของคุณเป็น “Module1”, “Module2” ฯลฯ
    • เปิดตัวแก้ไข VBA>> คลิก แทรก>> เลือก โมดูล .
  • โมดูลสมุดงาน (ThisWorkbook): เก็บโค้ดที่เชื่อมโยงกับเหตุการณ์ในสมุดงาน (เปิด ก่อนปิด ฯลฯ)
    • ขั้นตอนกิจกรรมที่ตอบสนองต่อการกระทำ เช่น การเปิดหรือปิดสมุดงาน
  • โมดูลแผ่นงาน (Sheet1, Sheet2 ฯลฯ): เหล่านี้เป็นโมดูลพิเศษที่แนบมากับชีตเฉพาะ
    • ประกอบด้วยขั้นตอนเหตุการณ์ที่ตอบสนองต่อการกระทำ เช่น การคลิกแผ่นงาน และโค้ดจะทำงานเมื่อแผ่นงานมีการเปลี่ยนแปลง
  • โมดูลคลาส: โมดูลเหล่านี้เป็นโมดูลขั้นสูงที่ใช้ในการสร้างออบเจ็กต์แบบกำหนดเอง แต่คุณไม่จำเป็นต้องใช้เมื่อเริ่มต้น ใช้สำหรับการเขียนโปรแกรมเชิงวัตถุ เช่น การสร้างคลาสแบบกำหนดเอง
  • โมดูลแบบฟอร์มผู้ใช้: สำหรับการออกแบบกล่องโต้ตอบแบบกำหนดเอง

Master Excel VBA:ทำความเข้าใจมาโคร โมดูล และขั้นตอน

ตัวอย่าง:การทำงานกับโมดูล

  • ไปที่นักพัฒนาซอฟต์แวร์ แท็บ>> เลือก Visual Basic (หรือกด Alt+F11 )
  • ใน Project Explorer (บานหน้าต่างด้านซ้าย)
    • คลิกขวาที่สมุดงานของคุณ>> คลิก แทรก>> เลือก โมดูล

Master Excel VBA:ทำความเข้าใจมาโคร โมดูล และขั้นตอน

  • คัดลอกและวางขั้นตอนลงไป:
Sub FormatSalesReport()
 Dim ws As Worksheet
 Set ws = ActiveSheet
 Dim lastRow As Long
 lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
 ws.Range("A1:H1").Font.Bold = True
 ws.Range("A1:H" & lastRow).Borders.LineStyle = xlContinuous
 Dim i As Long
 For i = 2 To lastRow
 If ws.Cells(i, "H").Value > 100 Then ws.Cells(i, "H").Interior.Color = RGB(0, 255, 0)
 Next i
End Sub
  • โค้ด VBA นี้จัดรูปแบบข้อมูลและเน้นค่าที่มากกว่า 100 ในคอลัมน์ H
  • บันทึกสมุดงาน
  • ขณะนี้ ขั้นตอนนี้สามารถใช้งานได้ในรูปแบบมาโคร
  • กด F5 หรือคลิกเรียกใช้

Master Excel VBA:ทำความเข้าใจมาโคร โมดูล และขั้นตอน

ความสัมพันธ์กับมาโครและขั้นตอน:

  • โมดูล ระงับ ขั้นตอน
  • มาโครคือขั้นตอนย่อย เก็บไว้ในโมดูล
  • มาโครที่ไม่มีโมดูล? ไม่สามารถทำได้ เนื่องจากโค้ด VBA ทั้งหมดอยู่ภายในโมดูลบางประเภท

เมื่อใดควรใช้: สำหรับโครงการ VBA ใด ๆ เริ่มต้นด้วยหนึ่งโมดูลสำหรับงานเล็กๆ ใช้หลายอันสำหรับอันที่ใหญ่กว่าเพื่อหลีกเลี่ยงความยุ่งเหยิง

มันเข้ากันได้อย่างไร:มาโคร → ขั้นตอน → โมดูล

แมโครเป็นคำที่ผู้ใช้เผชิญสำหรับขั้นตอนย่อย ขั้นตอนคือการบล็อกโค้ด ขั้นตอนกลุ่มโมดูลสำหรับองค์กร

ตัวอย่างขั้นตอนการทำงาน:

  • บันทึกมาโคร → สร้างขั้นตอนย่อยในโมดูลใหม่ (มักจะเป็น “Module1”)
  • แก้ไขขั้นตอนเพื่อปรับแต่ง
  • เพิ่มขั้นตอนเพิ่มเติมให้กับโมดูลเดียวกันหรือสร้างโมดูลใหม่

Master Excel VBA:ทำความเข้าใจมาโคร โมดูล และขั้นตอน

แนวทางปฏิบัติที่ดีที่สุดและเคล็ดลับ

  • แบบแผนการตั้งชื่อ: ใช้ชื่อที่สื่อความหมาย เช่น Sub CalculateTotalSales() แทน Sub Macro1() หลีกเลี่ยงช่องว่าง ใช้ CamelCase
  • การจัดการข้อผิดพลาด: เพิ่ม เมื่อเกิดข้อผิดพลาด ดำเนินการต่อถัดไป หรือ เมื่อเกิดข้อผิดพลาด GoTo ErrorHandler ในขั้นตอนต่างๆ เพื่อให้มีความแข็งแกร่งยิ่งขึ้น
  • ความปลอดภัย :มาโครสามารถเรียกใช้โค้ดได้ ดังนั้นให้เปิดใช้งานจากแหล่งที่เชื่อถือได้เท่านั้น (ไฟล์>> ตัวเลือก>> ศูนย์ความเชื่อถือ>> การตั้งค่ามาโคร ).
  • การแก้ไขจุดบกพร่อง: ใช้ F8 เพื่ออ่านโค้ดในโปรแกรมแก้ไข VBA
  • เคล็ดลับขั้นสูง: ส่งออกโมดูล (ไฟล์ .bas) เพื่อใช้โค้ดซ้ำในสมุดงาน
  • ข้อผิดพลาดทั่วไป: อย่าสับสนระหว่างแมโคร Excel กับสคริปต์ Office (ที่ใช้ JavaScript ใน Excel เวอร์ชันใหม่กว่า) VBA มีประสิทธิภาพมากกว่าสำหรับการทำงานอัตโนมัติบนเดสก์ท็อป

บทสรุป

เมื่อทำตามบทช่วยสอนนี้ คุณจะเข้าใจคำศัพท์เฉพาะของ Excel VBA ได้:แมโคร กับ โมดูล และ กระบวนการ การทำความเข้าใจข้อกำหนดเหล่านี้จะช่วยให้คุณใช้ VBA ได้อย่างมีประสิทธิภาพ มันจะช่วยคุณนำทางเอกสาร VBA สื่อสารกับผู้ใช้ Excel คนอื่นๆ และจัดระเบียบโค้ดของคุณได้อย่างมีประสิทธิภาพมากขึ้น เริ่มต้นด้วยการบันทึกมาโครเพื่อดูขั้นตอนการทำงาน จากนั้นจัดระเบียบเป็นโมดูลเมื่อโครงการของคุณเติบโตขึ้น ฝึกฝนโดยทำให้งานง่ายๆ เป็นอัตโนมัติในสเปรดชีตของคุณเอง แล้วคุณจะเห็นพลังของ VBA อย่างรวดเร็ว

รับแบบฝึกหัด Excel ขั้นสูงพร้อมโซลูชันฟรี!