Microsoft Excel Macro & VBA

VBA Syntax Cheat Sheet

สรุปคำสั่ง VBA ที่ผู้เรียนควรรู้ เพื่อใช้อ่าน แก้ไข และต่อยอด Macro จากคลาส Excel Macro & VBA

เริ่มอ่านโค้ด

โครงสร้าง Macro

Syntax แรกที่ต้องอ่านให้ออกก่อนเข้า VBA Editor และก่อนแก้โค้ดที่ Record Macro สร้างให้

หนึ่ง Macro คือหนึ่ง Sub

ใช้ตอนสร้างคำสั่งใหม่ใน Module

Sub MacroName()
    'คำสั่งอยู่ตรงนี้
End Sub

ชื่อ Macro อยู่หลังคำว่า Sub และจบชุดคำสั่งด้วย End Sub

Comment

ใช้จดว่าโค้ดบรรทัดนี้ทำอะไร

'คัดลอกข้อมูลจากฟอร์มไปชีท Data

ข้อความหลังเครื่องหมาย apostrophe จะไม่ถูกรัน

Statement หนึ่งบรรทัด

ใช้แยกอ่านโค้ดที่ Record Macro สร้างให้

Range("A1").Value = "Hello"

อ่านจากซ้ายไปขวา: Object.Property = ค่าที่ต้องการกำหนด

หัวใจของการอ่าน VBA

Object / Property / Method

วิธีแยกประโยค VBA ให้ออกว่าโค้ดกำลังพูดถึงอะไร เปลี่ยนคุณสมบัติอะไร หรือสั่งให้ทำอะไร

Object.Property = Value

ใช้เมื่อเปลี่ยนค่า/ชื่อ/รูปแบบ

ActiveSheet.Name = "Qrt4"
Range("A1").Value = "North"

Property คือคุณสมบัติ เช่น Name, Value, Font.Size

Object.Method

ใช้เมื่อสั่งให้ Excel ทำงาน

Range("A1").Select
ActiveCell.Copy
Sheets.Add

Method คือคำสั่ง เช่น Select, Copy, Paste, Clear

Object ซ้อน Object

ใช้กับ Font และการจัดรูปแบบ

Selection.Font.Bold = False
ActiveCell.Font.Size = 20

Font เป็น Object ย่อยของ Selection หรือ ActiveCell

เลือกพื้นที่ให้ถูก

Sheet, Cell และ Selection

Syntax สำหรับบอก VBA ว่าจะทำงานกับชีท เซลล์ หรือช่วงข้อมูลไหน

เลือกชีท

ใช้ตอนสลับชีทใน Macro

Sheets("Data").Select
Sheets(1).Select

เลือกจากชื่อชีท หรือเลือกจากลำดับชีท

เซลล์และช่วงข้อมูล

ใช้ระบุตำแหน่งแบบชัดเจน

Range("A1").Select
Range("A1:D10").Select
Cells(2, 1).Value = "OrderID"

Range ใช้ที่อยู่แบบ Excel, Cells ใช้เลขแถวและเลขคอลัมน์

Offset

ใช้เลื่อนตำแหน่งแบบ Relative

ActiveCell.Offset(1, 0).Select
ActiveCell.Offset(1, 1).Value = "East"

Offset(แถว, คอลัมน์) เช่น 1,0 คือเลื่อนลง 1 แถว

งาน Excel ที่เจอบ่อย

ใส่ค่า จัดรูปแบบ คัดลอก ล้าง

คำสั่งพื้นฐานสำหรับจัดการข้อมูลและรูปแบบใน Excel

ใส่ค่าใน Cell

ใช้สร้างหรือแก้ข้อมูล

Range("A1").Value = "Sales"
Cells(2, 1).Value = 100

กำหนดค่าด้วย .Value

จัดรูปแบบตัวอักษร

ใช้เน้นหัวตาราง

Range("A1").Font.Bold = True
Range("A1").Font.Size = 14

Font เป็น Object สำหรับควบคุมรูปแบบตัวอักษร

คัดลอกและวางค่า

ใช้ย้ายข้อมูลระหว่างช่วง

Range("A1:D10").Copy
Range("F1").PasteSpecial xlPasteValues

PasteSpecial xlPasteValues ใช้วางเฉพาะค่า