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)

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

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

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

Scroll to Top