2025/9/30 แก้ไขเป็น

... อ่านเพิ่มเติมถ้าเพิ่งเริ่มจับ Excel VBA แล้วไม่รู้จะเริ่มจากตรงไหน เราแนะนำให้เริ่มจาก “ทำให้ Excel ทำงานแทนเรา” ก่อน เช่น จัดรูปแบบตาราง ก๊อปปี้ข้อมูล หรือสรุปรายงานอัตโนมัติ เพราะจะเห็นภาพว่า VBA code ช่วยลดเวลายังไง 1) เตรียมเครื่องมือให้พร้อม - เปิดแท็บ Developer: File > Options > Customize Ribbon แล้วติ๊ก Developer - เข้า VBA Editor: กด Alt+F11 - สร้างโมดูล: Insert > Module แล้วค่อยวางโค้ด 2) โครงสร้าง VBA ที่มือใหม่ควรรู้ โดยทั่วไปโค้ดจะอยู่ในรูป Sub ชื่อมาโคร() 'คำสั่ง End Sub เริ่มจากคำสั่งสั้นๆ เช่นแสดงข้อความ: Sub HelloVBA() MsgBox "สวัสดี VBA" End Sub 3) ตัวอย่าง VBA code ที่เอาไปใช้ได้ทันที ตัวอย่าง A: ใส่หัวตาราง + ทำตัวหนาอัตโนมัติ Sub MakeHeader() Range("A1:D1").Value = Array("ชื่อ", "สินค้า", "จำนวน", "ราคา") Range("A1:D1").Font.Bold = True End Sub ตัวอย่าง B: วนลูปแถวที่มีข้อมูล (ใช้บ่อยมาก) Sub LoopRows() Dim lastRow As Long, r As Long lastRow = Cells(Rows.Count, "A").End(xlUp).Row For r = 2 To lastRow Cells(r, "B").Value = UCase(Cells(r, "B").Value) Next r End Sub 4) คำถามที่เจอบ่อย: “ต้องคั่น/เว้นบรรทัดเสมอไปไหม หรือแค่บางครั้ง?” ใน VBA การเว้นบรรทัดช่วยให้อ่านง่ายขึ้น แต่ไม่จำเป็นต้อง “คั่นเสมอไป” สิ่งสำคัญคือให้โค้ดเป็นบล็อกชัดเจน เช่น If…End If, For…Next และใส่คอมเมนต์ (') ตรงจุดที่อธิบายเหตุผลหรือขั้นตอน 5) ทริคแก้ปัญหาที่มือใหม่พลาดบ่อย - เปิด Option Explicit (Tools > Options > Require Variable Declaration) เพื่อกันพิมพ์ชื่อตัวแปรผิด - ถ้าโค้ดช้า ให้หลีกเลี่ยง Select/Activate และอ้างอิง Range/Cells ตรงๆ - ฝึกใช้ตัวแปร Worksheet เช่น Set ws = ThisWorkbook.Worksheets("Sheet1") จะลดความสับสนเวลามีหลายชีท ลองเริ่มจาก 1 มาโครที่ใช้จริงในงานประจำ แล้วค่อยๆ เพิ่มเงื่อนไข/ลูป จะทำให้เข้าใจ Excel VBA และเขียน VBA code ได้ไวขึ้นมาก