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