VBA Excel – Select…Case

Select…Case เป็นคำสั่งเพื่อการตัดสินใจเช่นเดียวกับ If…Then…Else ซึ่งจะเป็นการตรวจสอบนิพจน์ว่าเข้ากรณีใด เมื่อเข้ากรณีนั้น ๆ แล้วจะหยุดตรวจสอบกรณีที่เหลือทันทีเช่นเดียวกับ If…Then…Else แตกต่างกันตรงที่สามารถทดสอบตามกลุ่มของคำหรือค่าเป็นช่วงได้

สะดวกกว่า ซึ่งในการเขียนโปรแกรมควบคุม Excel ในงานที่มีความซับซ้อนเราพบว่าต้องใช้ Select…Case เพื่อการตัดสินใจอยู่บ่อยครั้ง

กรณีใช้สัญญลักษณ์ทางคณิตศาสตร์ในการเปรียบเทียบได้แก่ =, <>, < , >,
< = หรือ >= จะใช้คำว่า Is เข้ามาร่วมด้วย เช่น Case Is > 100, Case Is < = 1000, Case Is <> 0, Case Is >= 99 เป็นต้น

หากใช้ตรวจสอบเป็นช่วงจะใช้ To เข้ามาร่วมด้วยเช่น Case 1 To 20, Case 8 To 30, 50 To 80 และยังสามารถใช้ Is ร่วมกับ To ได้ เช่น Case 10 To 20, 30 To 100 Is > MyNumber

Video ด้านล่างนี้อธิบายความหมายและการใช้งาน Select Case ที่พบได้บ่อยในชีวิตประจำวันที่มักจะมีการเที่ยบว่าเป็นค่าใดหรืออยู่ในกลุ่มนั้นกลุ่มนี้หรือไม่ หรือเป็นค่าในช่วงใด ๆ หรือไม่เป็นต้น ซึ่งจะมีตัวอย่าง Code ตามด้านล่างครับ

'Case compare text
Sub SelectCaseTesing()
    Dim i As Integer
    i = 2
    Select Case Range("a" & i).Value
        Case "AR", "VR"
            Range("g" & i).Value = "Thai"
        Case "VB"
            Range("g" & i).Value = "Laos"
        Case "ZR"
            Range("g" & i).Value = "Malasia"
        Case "MN2"
            Range("g" & i).Value = "Singapore"
        Case Else
            Range("g2").Value = "Please check"
    End Select
End Sub

'Case compare number
Sub SelectCaseTesting2()
    Dim i As Integer
    i = 2
    Select Case Range("e" & i).Value
        Case Is < = 1000
            Range("f" & i).Value = 10
        Case 1001 To 3000
            Range("f" & i).Value = 100
        Case 3001 To 9000
            Range("f" & i).Value = 1000
        Case Is >= 9000
            Range("f" & i).Value = 1000
        Case Else
            Range("f" & i).Value = "Please check"
    End Select
End Sub

📹 Video แสดงการใช้งาน Select…Case (1)


🧭 Timeline หัวข้อหลัก

  • 00:00:13 แนะนำวัตถุประสงค์: ใช้ Select Case เพื่อควบคุมเงื่อนไขใน VBA
  • 00:00:40 เปรียบเทียบ Select Case กับ If…Then…Else
  • 00:01:10 อธิบายโครงสร้างคำสั่ง Select Case 00:01:25 ใช้ Case เปรียบเทียบข้อความ เช่น “AR”, “VB”, “ZR”
  • 00:02:10 ใช้ Case เปรียบเทียบตัวเลข เช่น Case Is <= 1000, Case 1001 To 3000
  • 00:02:45 ใช้ Case Else เพื่อจัดการกรณีไม่ตรงเงื่อนไขใด ๆ
  • 00:03:20 สาธิตการใช้ Select Case กับข้อมูลในเซลล์
  • 00:04:10 อธิบายการใช้ Is และ To เพื่อกำหนดช่วงและเงื่อนไข
  • 00:05:00 ทดสอบการทำงานของโค้ดกับข้อมูลจริง
  • 00:06:10 สรุป: Select Case ช่วยให้โค้ดอ่านง่ายและควบคุมเงื่อนไขได้อย่างมีประสิทธิภาพ

📹 Video แสดงการใช้งาน Select…Case (2)


🧭 Timeline หัวข้อหลัก

  • 00:00:13 แนะนำวัตถุประสงค์: ประยุกต์ใช้ Select Case กับข้อมูลจริง
  • 00:01:00 ทบทวนโครงสร้างคำสั่ง Select Case จากตอนก่อนหน้า
  • 00:02:15 สาธิตการใช้ Case กับรหัสสินค้า เช่น “AR”, “VB”, “ZR”
  • 00:04:30 ใช้ Case Is <= 1000 และ Case 1001 To 3000 เพื่อกำหนดช่วงราคา 00:06:45 ใช้ Case Else เพื่อจัดการกรณีไม่ตรงเงื่อนไขใด ๆ
  • 00:08:00 สร้างตัวแปรรับค่าจากเซลล์แล้วใช้ Select Case ควบคุมผลลัพธ์
  • 00:10:20 สาธิตการแสดงผลลัพธ์ในเซลล์ปลายทาง
  • 00:12:30 อธิบายการใช้ Select Case กับข้อมูลหลายประเภทในระบบเดียว
  • 00:15:00 ทดสอบการเปลี่ยนข้อมูลและดูผลลัพธ์ที่เปลี่ยนตาม
  • 00:18:10 ยกตัวอย่างการประยุกต์ใช้ในระบบจัดกลุ่มลูกค้า
  • 00:21:00 สรุป: Select Case ช่วยให้โค้ดอ่านง่ายและควบคุมเงื่อนไขได้อย่างแม่นยำ

🔗 Link ที่เกี่ยวข้อง

ดาวน์โหลดไฟล์ตัวอย่างได้ที่ Example

กรณีมีปัญหาการใช้งาน Excel and VBA สามารถสอบถามได้ที่ Excel Forum

Scroll to Top